为什么我会得到视口中坐标的MoveTargetOutOfBoundsException?如何修复



使用以下代码:

elem = driver.find_element_by_xpath('/html/body/canvas')
from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(driver)
actions.move_to_element_with_offset(elem, 185, -35).click().perform()

我无法导航到画布元素的所需部分,并收到此错误:

MoveTargetOutOfBoundsException: move target out of bounds
(Session info: chrome=85.0.4183.102)

我的移动目标肯定在视口中,不需要滚动即可点击。我使用chromedriver,并使用画布的左上角作为move_to_element_with_offset()的像素坐标的起点。有什么解决办法吗?我对任何在python中点击画布上指定点的解决方案都感兴趣,不需要使用同样的方法。

move_to_element_with_offset((

move_to_element_with_offset()将鼠标移动指定元素的偏移量,其中偏移量相对于元素的左上角。

因此,从<canvas>元素的左上角开始,如果您打算移动偏移(185, -35),其中:

  • 右侧185个单位
  • 35个单元以上

将始终作为MoveTargetOutOfBoundsException的结果。


解决方案

不使用负偏移向上移动,您可以使用正偏移向下移动,如下所示:

actions.move_to_element_with_offset(elem, 35, 35).click().perform()

参考文献

您可以在中找到相关的详细讨论

  • MoveTargetOutOfBoundsChromeDriver版本的异常问题>74

相关内容

  • 没有找到相关文章

最新更新