【问题标题】:Selenium error when button is clicked: .MoveTargetOutOfBoundsException [duplicate]单击按钮时出现 Selenium 错误:.MoveTargetOutOfBoundsException [重复]
【发布时间】:2020-01-08 19:05:56
【问题描述】:

我在 python 上使用 safari 和 selenium,我想制作一个 python selenium 程序,单击 iframe 中的 'confirm' 按钮,但它给我一个错误或者它不起作用(按钮和 iframe 在视口中)

基本上无论如何我都会尝试,如果使用“动作链”单击按钮,它会给我同样的错误 (selenium.common.exceptions.MoveTargetOutOfBoundsException: Message:),或者如果按钮被正常单击,它没有任何结果(不起作用)

HTML - iframe

<iframe title="Confirm-box" scrolling="no" class="bottom" data-name="bottom">
</iframe>

HTML - 按钮

<button type="submit" class="btn btn-submit" name="submitBtn">
    Confirm
</button>

iframe

iframe2 = driver.find_elements_by_tag_name('iframe')[1]

滚动到按钮

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)
driver.switch_to.frame(iframe2)

双击按钮

actionChains = ActionChains(driver)
element = driver.find_element_by_xpath("//button[contains(text(),'Confirm')]")
actionChains.double_click(element).perform()

预期输出:

按钮被点击

错误(动作链):

selenium.common.exceptions.MoveTargetOutOfBoundsException: Message:

【问题讨论】:

  • 当您尝试单击 element 时,它是否在视口中?
  • @Trapli Yap,它是,iframe 也是如此

标签: javascript python selenium selenium-webdriver


【解决方案1】:

你不能直接点击一个 iframe 元素,首先你需要在 selenium 中使用一个特殊的命令switchTo,它允许你改变你可以在之间切换的上下文(iframes, windows,和警报)。

我不知道python的语法,但应该是这样的:

driver.switchTo().iframe('iframe');

您可以在此处查看官方文档: https://www.seleniumhq.org/docs/03_webdriver.jsp#moving-between-windows-and-frames

【讨论】:

  • 我想我已经用命令:driver.switch_to.frame(iframe2) 做到了,但它仍然不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 2016-12-15
相关资源
最近更新 更多