我在使用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"
但是在打印“开始”之后它会出现超时错误,并且没有得到网站的源代码。
答案 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