偶尔成功的黄瓜测试

问题描述:

我有黄瓜的步骤,包括以下内容:偶尔成功的黄瓜测试

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类。细节与文本对应的细节。

这是黄瓜的某种时间问题或问题?或者更有可能的是,现在黄瓜已经让我蝙蝠粪疯了,我没有看到正确的东西?

+2

我不熟悉的黄瓜,但试图让失败时页面的提取物,它可能会帮助。 – mbillard 2012-07-25 19:43:22

+1

您是否使用Javascript来使点击时可见的细节元素?如果是这样,并且您正在使用ajax检索详细信息数据,这可能是一个计时问题。 – maxenglander 2012-07-25 19:55:46

+0

我在这一步实际上并没有使用ajax,但是javascript是。紧接着这一步之前的步骤是单击一个使其他事物可见的选项卡。我该如何解决时间问题? – BBB 2012-07-25 20:27:19

在此基础上一篇:Why does it seem like the Capybara "wait for page to load" timer works for matchers but not finders?

看来,查找方法不会等待页面做这件事之前加载。这意味着你有一个竞争条件,而黄瓜正在失去大约90%的时间。

可以弯曲它在wait_until块指定自己的超时并通过测试

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