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があり、詳細に対応するテキストが含まれています。

これはある種のタイミングの問題ですか、それともキュウリの問題ですか?それとも、キュウリが私を狂気に駆り立てた今、私は物事を正しく見ていませんか?

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 に答える