【问题标题】:click on iframe element using Python selenium使用 Python selenium 单击 iframe 元素
【发布时间】:2014-05-15 20:45:02
【问题描述】:

如何使用 selenium python 从主机 A(在此示例中为 jsfiddle.net)单击红色按钮 here? (java脚本限制策略错误不要让我这样做)。我也不想直接点击红色按钮。 谢谢。

el =driver.find_element_by_xpath("/html/body/div2/input")
webdriver.ActionChains(driver).move_to_element(el).click(el).perform()

保持红色按钮的iframe:

<iframe src="http://www.myhostb.blogfa.com/" width="500" height="300">
</iframe>

重要提示:将 jsfiddle.net 想象成主机 A。

DEMO

【问题讨论】:

    标签: iframe selenium python-3.x cross-domain


    【解决方案1】:

    你需要使用switch_to_frame()

    driver.switch_to_frame("result")
    driver.switch_to_frame(driver.find_element_by_css_selector("body>iframe"))
    driver.find_element_by_css_selector("input.ex2").click()
    

    iframe 中完成后,您可以使用以下命令切换回顶部框架:

    driver.switch_to_default_content()
    

    【讨论】:

    • @mohsensolhnia 上面的示例应该适用于您提供的 HTML 示例。至于“同域策略”,我不知道它指的是什么,我不欣赏你对我大喊大叫,特别是当我在你原来的问题中没有看到“同域策略”时。
    • 我收到错误Message: unknown error: Error is not a function
    • @BudiMulyo 如果您有任何问题,我强烈建议您在 Selenium 标记中创建一个新的,其中包含代码示例、您尝试访问的 HTML 以及完整的错误消息。我很乐意看看,看看能不能帮到你。
    • @Richard 感谢您的回复,但使用wait.until(EC.frame_to_be_available_and_switch_to_it(chrome.find_element_by_xpath("//iframe[@id='mainframe']")))解决了这个问题
    猜你喜欢
    • 2020-05-24
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 2018-05-26
    • 2021-03-31
    • 1970-01-01
    相关资源
    最近更新 更多