Python 硒移动到绝对位置

Python 硒移动到绝对位置,python,html,selenium,Python,Html,Selenium,我正在使用python包以某种特定的模式移动鼠标,或者只是随机移动鼠标 我尝试的第一件事是获取//html元素的大小,并使用它来为鼠标移动创建边界。但是,当我执行此操作时,MoveTargetOutOfBoundsException会抬起头并显示一些“给定”坐标(不在输入附近) 我使用的代码是: origin=驱动程序。通过xpath('//html'查找元素 bounds=原点.size 打印边界 ActionChains(驱动程序)。将_移动到_元素(原点)。按_偏移量移动_(边界['wi

我正在使用python包以某种特定的模式移动鼠标,或者只是随机移动鼠标

我尝试的第一件事是获取
//html
元素的大小,并使用它来为鼠标移动创建边界。但是,当我执行此操作时,
MoveTargetOutOfBoundsException
会抬起头并显示一些“给定”坐标(不在输入附近)

我使用的代码是:

origin=驱动程序。通过xpath('//html'查找元素
bounds=原点.size
打印边界
ActionChains(驱动程序)。将_移动到_元素(原点)。按_偏移量移动_(边界['width']-10,边界['height']-10)。执行()

所以我从每个边界减去10来测试它并移动到那个位置(显然,
move\u to_element\u by_offset
方法是不可靠的)

MoveTargetOutOfBoundsException:消息:给定坐标(19192766)在文档之外。错误:MoveTargetOutOfBoundsError:目标滚动位置(171798)不在页面上。
堆栈跟踪:
在FirefoxDriver.prototype.mousemovoint(file://...

实际给定坐标为(
1903-10=1893969-10=989

有什么想法吗?

两个可能的问题:

1) 页面上可能有滚动,因此在单击之前,您应该滚动到元素视图


2) 给定的大小不考虑浏览器元素,在现实世界中,您应该替换大约20或30以获得原始大小(您可以测试该值)

在我的情况下,问题是我没有等待元素加载。至少我认为这就是问题所在,因为如果我允许selenium等待元素,然后单击它,它就会工作

试着在原文中使用body而不是html。试过了,它没有帮助。(同样的结果)好的。两个问题:当使用move\u to\u元素时,页面不会滚动到元素吗?尽管返回的coords被关闭了几百次,但为什么会有20个或30个呢?在firefox中,本机事件已打开-将根据环境进行滚动,selenium bugtracker上有很多与此相关的bug。对于第二个问题-取决于屏幕分辨率和安装的插件、接口等大小将有所不同。例如,如果在phantomjs(headless webkit browser)上运行相同的命令,则坐标对于相同的命令是正确的,这是因为它没有任何附加的接口。但是如何获得文档大小,以便知道不移动到哪里?