【问题标题】:Getting Timeout::Error in capybara and ruby获取超时::水豚和红宝石中的错误
【发布时间】:2012-12-12 15:21:45
【问题描述】:

我在测试中使用黄瓜+水豚

env.rb
Capybara.run_server = false
Capybara.default_driver = :selenium
World(Capybara::DSL)

在我的测试中,我点击了一个链接

Then /^I see deals on map$/ do
  find("#dealmap").click
end

上面的动作是打开一个层(div),但是进程停留在 find("#dealmap").click 方法上。 5 秒后,我收到以下错误

 Timeout::Error (Timeout::Error)
      /usr/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill'
      /usr/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
      /usr/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
      /usr/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
      /usr/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'
      /usr/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
      /usr/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'
      /usr/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
      /usr/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
      /usr/lib/ruby/1.9.1/net/http.rb:1293:in `request'
      /usr/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'
      /usr/lib/ruby/1.9.1/net/http.rb:745:in `start'
      /usr/lib/ruby/1.9.1/net/http.rb:1284:in `request'
      ./features/frontend/step_definitions/search_results_page.rb:2:in `/^I see deals on map$/'
      features/frontend/search_results_page.feature:6:in `Then I see deals on map'

注意: 我已经尝试增加时间,但它没有解决问题

我无法解决问题。有什么建议吗?

【问题讨论】:

  • 尝试研究参考Timeout::Error的现有问题
  • 如果您有可重现的案例,请将其报告给 Capybara 问题跟踪器

标签: ruby cucumber capybara


【解决方案1】:

我认为问题出在这一行

Capybara.run_server = false

如果您正在运行基于机架的测试,您将需要它。删除它并重新运行测试。

如果您正在运行基于 Web 的测试,您可能希望将其保留在其中 - 并且仅仅因为您使用 Selenium 并不意味着您正在运行基于 Web 的测试。您仍在运行基于机架的测试,但在浏览器中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-28
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多