Capybara visit gets stuck for no reason
我们为Rails项目提供了一个大型Cucumber 套件。全部都是水豚,大部分通过Firefox浏览。
最近,我们开始经历失败,这是我努力奋斗的方向。外观如下:
-
在某些时候(总是一样),水豚
visit 卡在试图加载页面上,水豚最终超时,无法找到要查找的元素(请参见下面的跟踪);其他功能中的每次后续访问也会超时; - 如果发生该功能的功能独立运行,则问题消失;
- 如果在故障发生之前使用调试器(binding.pry),则问题消失;
- 在卡住的情况下,如果我在Firefox地址栏中按Enter,则请求立即获得通过,测试继续进行并完成,没有任何问题。
一个可能不相关的细节:我们正在使用多个会话(capybara
我的伴生的机器上也出现相同的行为。
在Rails日志中没有可疑的东西。没有迹象表明该请求试图通过。
OSX 10.8.2,ruby 1.9.3,rails 3.2.6,sqlite3,最新的水豚/selenium。
错误堆栈跟踪:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Timeout::Error (Timeout::Error) /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/protocol.rb:132:in `readline' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:2551:in `read_new' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1316:in `catch' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1293:in `request' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1286:in `block in request' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:745:in `start' /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1284:in `request' (eval):2:in `has_css?' ./features/step_definitions/home_page_steps.rb:70:in `/^I am taken to the products page on the retailer site$/' features/home_page.feature:21:in `Then I am taken to the products page on the retailer site' Timeout::Error (Timeout::Error) |
编辑
编辑2
如果您遇到类似问题,并且正在使用FireBug(水豚/萤火虫),请尝试将其禁用。
编辑3
在我看来,由于我们已经从webrick切换到Thin(在测试/开发中),所以从未发生过。就像在Gemfile中添加