TestNG で Selenium Web Driver を使用してテスト ケースを作成しており、複数のテストを順番に実行するシナリオがあります (以下を参照)。
@Test(priority =1)
public void Test1(){
}
@Test(priority =2)
public void Test2(){
}
両方のテストは、ダイアログ ボックスが開き、テストが実行され、ダイアログ ボックスが閉じて、ページの上部に通知メッセージが表示され、テストが成功するたびにページが更新される AJAX 呼び出しです。
問題は次のとおりです。Test2 は、ページが更新/再ロードされるのを待ちません。Test1 が正常に完了すると、ページが更新される前に Test2 が開始されます (つまり、ダイアログ ボックスが開かれ、シナリオが実行されます)。その間、ページが更新されます (これは、 Test1 の実行が成功した後に発生するはずでした)。ページが更新されると、Test2 によって開かれたダイアログ ボックスが表示されなくなり、Test2 が失敗します。
(また、ページを更新するのにどれくらいの時間がかかるかわかりません。したがって、Test2 を実行する前に Thread.sleep(xxxx) を使用したくありません)
また、私は思わない
driver.navigate().refresh()
その場合、ページが2回更新されるため、Test2の前に配置することで問題を解決します。問題は、コードを介して行われている更新です (1 秒、3 秒、または 5 秒かかる場合があるため不明です)。