在使用 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"
但是在打印“starts”之后,就会出现超时错误,并且无法获取网站的源代码。
最佳答案
在我尝试重定向到另一个严重加载 Ajax 的页面后,我在某些网站上经常遇到此错误,例如 browser.button.click
。我发现了这个:
browser.execute_script('document.getElementsByTag('button')[0].click()')
sleep 10
调整 sleep (或者更好的是.wait_until_present
)会有所帮助。
关于Ruby Watir WebDriver Net::ReadTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20766493/