Ruby Watir WebDriver Net :: ReadTimeout

时间:2013-12-24 20:36:12

标签: ruby watir watir-webdriver

我在使用Watir进行身份验证后,尝试使用Watir获取Facebook的源代码。它给出了这个特定的错误。

/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/protocol.rb:158:in `rescue in rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)

我相信因为主页中有太多的AJAX请求,webdriver会在页面未完全加载时检测到它。所以在我登录后,我这样做了:

p "starts"
Watir::Wait.until {
  browser.div(:'class' => '_586i').exists?
}
p "finishes"

但是在打印“开始”之后它会出现超时错误,并且没有得到网站的源代码。

2 个答案:

答案 0 :(得分:1)

在我尝试之后,我已经为某些网站收到了很多错误,例如browser.button.click重定向到另一个重载Ajax的页面。我发现了这个:

browser.execute_script('document.getElementsByTag('button')[0].click()')
sleep 10

调整睡眠(或更好,.wait_until_present)有帮助。

答案 1 :(得分:1)

您可以强制浏览器等待所有ajax调用加载

sleep(1)直到browser.execute_script(“return jQuery.active”)== 0