我正在编写一个下载(合法)一堆图像的刮刀,我遇到了一个问题。在相关页面上,在页面加载完成后,通过css查找元素只需要太长时间。因此,举例来说,我认为脚本在这里挂了10分钟:
@@wait.until do
find_element_by_css(css_selector)
end
@@driver.find_element(:css => css_selector).text
def find_element_by_css(css_string)
@@wait.until do
@@driver.find_element(:css => css_string)
end
end
css_selector = "table:nth-child(6) tr:nth-child(2) .view-value"
或类似的地方。现在,这件事情会在没有做任何事情的情况下持续10-20分钟。如果我删除对wait
的调用,脚本将抛出超时异常。
有关如何解决此问题的任何想法?任何帮助将不胜感激。
答案 0 :(得分:2)
我认为问题是有缺陷的硒。我切换到nokogiri,问题消失了。此外,我的应用程序设计存在一些错误/不一致。
答案 1 :(得分:2)
Selenium有一个使用css在IE中定位元素的bug。如果您切换到使用其他浏览器(例如Firefox),您应该会看到性能的巨大提升。