是否还有其他人在使用 Webdriver 时遇到延迟问题?我让它和 Capybara 在 Cucumber 上运行。而且填写一张表格需要30多秒甚至几分钟的时间。由于某种原因,当两个字段都被 id 引用时,它将填写一个字段,然后在填写另一个字段之前暂停。
此外,由于这种延迟,我遇到了超时错误。(但他们是不稳定的......)
字段没有什么特别之处。它们出现在页面加载时,并且此页面上没有 Ajax。
有人有想法么?
这是错误:
execution expired (Timeout::Error)
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/timeout.rb:60:in `rbuf_fill'
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/net/protocol.rb:126:in `readline'
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/net/http.rb:2026:in `read_status_line'
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/net/http.rb:2015:in `read_new'
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/net/http.rb:1051:in `request_without_webmock'
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/net/http.rb:1037:in `request_without_webmock'
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/net/http.rb:543:in `start'
/Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/net/http.rb:1035:in `request_without_webmock'
编辑:这可能与我在运行 Cucumber 测试时已经打开了一个 Firefox 实例有关。尽管超时的频率降低了,但我仍然经常遇到它们,我认为这仍然是一个问题。
Edit2:功能文件将指定一个步骤:
And I complete personal info
该步骤将进一步定义为其他步骤:
And /^I complete personal info$/ do
fill_in('first_id', :with => "foo")
fill_in('second_id', :with => "bar")
...more fill_ins...
end
Capybarafirst_id
有时会发现,我的场景的其余部分执行得很好。其他时候,它会超时。在我看来,这是非常不可预测的。还有一些时候,它会找到first_id
但找不到second_id
。顺便说一句,这些id
s 确实存在于页面上。
我应该包含有关该错误的更多信息。它通常看起来像这样:
...all that stuff I included in the error above...
./features/step_definitions/web_steps.rb:107
./features/step_definitions/web_steps.rb:11:in `with_scope'
./features/step_definitions/web_steps.rb:105:in `/^(?:|I )should see "([^"]*)"(?: within "([^"]*)")?$/'
/my feature file:30:in 'Then we verify stuff we just filled out'
Then we verify stuff we just filled out
用这些额外的步骤定义:
And %{I should see "foo"}
And %{I should see "bar"}
我希望这些额外的信息有所帮助!如果您还需要什么,请在评论中告诉我。