Ruby Watir WebDriver Net::ReadTimeout

标签 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"

但是在打印“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/

相关文章:

javascript - before_update 无法与 Ajax、Rails 4 一起正常工作

xml - Ruby:attr_accessor 生成的方法 - 如何迭代它们(以 to_s - 自定义格式)?

ios - Calabash - 如何比较标签中给定 ID 的文本?

watir - 如何通过非标准 html 属性访问元素?

ruby - 这个代码片段有更好的做法吗?

rubygems - 使用 Watir 检索文本

ruby-on-rails - 使用 RSpec/Capybara 检查图像的尺寸?

ruby - 在瓦提尔打开新的一页

ruby watir 获取页面的 html

Watir Webdriver : How can I disable loading ads using watir