1

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

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 ,其中包含与详细信息相对应的文本。

这是某种时间问题还是黄瓜问题?还是更有可能的是,既然 Cucumber 已经把我逼疯了,我没有正确看待事情?

4

1 回答 1

1

基于这篇文章:为什么似乎 Capybara“等待页面加载”计时器适用于匹配器而不适用于查找器?

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

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

page.wait_until(5) { find('.details', :text => details) }
find('.details', :text => details).click
于 2012-07-25T20:29:08.137 回答