0

ポップアップ ダイアログがステータスとして 0 のページ値を示す監査を開始する機能を自動化していますが、その後、この値はゼロ以外の値に変更されます。[OK] ボタンをクリックしてプロセスを続行できるように、ゼロ以外の値が表示されたら確認する必要があります。wait_untilカピバラにはありません。したがって、カピバラ テストは、正規表現が true になるまで「待機」する必要があります。いくつかのオプションを試しましたが、これが最後のオプションで、失敗しています。「睡眠」を使うのは正しい方法ではありません。

find(:xpath, '//*[@id="pageKeywords"]', :text => /"[1-9][1-9]" pages processed/).should be_visible

しかし、テストが「処理された0ページ」にあるときに監査を見つけて失敗するため、これはうまくいきません。これについてどうすればいいですか?

4

1 に答える 1

0

カピバラはこれを自分でやろうとしますが、カピバラが待つ準備ができているよりも監査に時間がかかると思います. あなたの仕様が次の行に沿って期待を設定するとしましょう:

expect(page).to have_css('#pageKeywords', text: %r{"[1-9][1-9]" pages processed}, visible: true)

カピバラはこれが起こるのをしばらく待ちます。メソッドは、で指定された秒数の間、例外をsynchronizeキャッチすることにより、これを処理します。ただし、次のように期待値をブロックとして渡すことで、カピバラがさらに長く待機できるようにすることができます。Capybara::ElementNotFoundCapybara.default_wait_timeCapybara.with_wait_time

Capybara.with_wait_time(30) do
  expect(page).to have_css('#pageKeywords', text: %r{"[1-9][1-9]" pages processed}, visible: true)
end 

ブーム!これで、カピバラは期待を満たすことをあきらめる前に 30 秒待機します。

于 2013-07-26T21:03:37.530 に答える