偶尔成功进行黄瓜试验

时间:2012-07-25 19:41:15

标签: ruby-on-rails cucumber capybara

我有一个黄瓜步骤涉及以下内容:

When /^I select from the Open table project with details "([^"]*)"$/ do |details|
  find('.details', :text => details).click
end

失败并显示以下错误消息Unable to find css ".details" (Capybara::ElementNotFound)

这个步骤在我运行它的时间大约有90%失败,但偶尔会有效。我检查页面源代码,页面确实有一个css类.details,其中包含与详细信息对应的文本。

这是黄瓜的某种时间问题还是问题?或者更有可能的是,现在黄瓜已经让我蝙蝠大便疯了,我没看错呢?

1 个答案:

答案 0 :(得分:1)

根据这篇文章:Why does it seem like the Capybara "wait for page to load" timer works for matchers but not finders?

似乎find方法在执行此操作之前不会等待页面加载。这意味着你有一个竞争条件,黄瓜在90%的时间里都会失去。

您可以在wait_until块中对其进行扭曲,以指定您自己的超时并通过测试

page.wait_until(5) { find('.details', :text => details) }
find('.details', :text => details).click