为什么“视口”会引起问题?使用python硒

时间:2018-10-15 14:10:49

标签: python-3.x selenium viewport geckodriver

我正在使用硒(在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进行交互就应该是可自动化的过程而言,这似乎很笨拙。

有人可以帮我找到最简单的方法,以确保要与之交互的元素位于“视口中”,或者更好的是,使硒不在乎与交互时页面的布局方式。元素?

0 个答案:

没有答案