我正在使用硒(在python中)和firefox的geckodriver构建一个webscraper,并收到以下错误消息:
MoveTargetOutOfBoundsException消息:(1193.1500244140625,695.8250122070312)不在视口宽度(1282)和高度(694)的范围内
我想我了解“视口”只是包含浏览器中当前显示元素的窗口。硒为什么要关心这个呢?我有使用VBA进行自动化的网络抓取工具,以前从未与浏览器当前视图之外的元素进行交互。有没有一种简单的方法可以使硒不在乎当前视口在哪里?
为解决此问题,我尝试首先使用
导航到该元素 #img is a link that I am opening in a new tab with these actions
ActionChains(driver) \
.key_down(Keys.CONTROL) \
.move_to_element(img).click(img) \
.key_up(Keys.CONTROL) \
**.move_to_element(img)**.perform()
此处的关键补丁是根据this thread执行的“ move_to_element”操作,但这似乎无效。
我想我可以使浏览器向下滚动,然后再尝试与该元素进行交互,但是对于仅通过与特定页面上的javascript和HTML进行交互就应该是可自动化的过程而言,这似乎很笨拙。
有人可以帮我找到最简单的方法,以确保要与之交互的元素位于“视口中”,或者更好的是,使硒不在乎与交互时页面的布局方式。元素?