0

我正在使用 Selenium Webdriver 和 Chrome 构建一个网络爬虫。它用

links = self.browser.find_elements_by_xpath("//*[@href]")

获取页面上的所有链接,然后遍历链接以过滤它们。但是,在我测试过的每个站点上,一旦它到达某个页面上的某个链接,它就会停在这一行:

url = link.get_attribute("href")

这不是一个错误,它只是停止,就好像它遇到了一个无休止的循环。对于给定的站点,每次测试运行时,它始终位于同一页面上的同一链接上。Firefox 不会发生停滞 - 一切正常。但是,出于其他原因,我需要它使用 Chrome 来执行此操作(相信我)。

我使用的 Chrome 版本是 28.0.1500.52,并且我使用的是与该版本兼容的最新 Chrome 驱动程序。这里会发生什么?

编辑(忽略此编辑)

在进一步研究之后,我发现了导致问题的原因:代码中的某个部分将鼠标悬停在找到的每个链接上。

hov = ActionChains(self.browser).move_to_element(link)
hov.perform()

当我评论那部分时,它起作用了。现在我必须弄清楚为什么这会对从 Selenium 链接对象获取 href 属性有任何影响(特别是当它对第一个任意数量的链接对象工作正常时)......

编辑 2

忽略第一次编辑。

4

0 回答 0