Я пишу тестовые примеры, используя Selenium web Driver в TestNG, и у меня есть сценарий, в котором я выполняю несколько тестов последовательно (см. ниже)
@Test(priority =1)
public void Test1(){
}
@Test(priority =2)
public void Test2(){
}
Оба теста - это вызовы AJAX, где открывается диалоговое окно, тесты выполняются, затем диалоговое окно закрывается, а затем появляется сообщение уведомления вверху страницы и после каждого успешного теста страница обновляется.
Проблема заключается в следующем: Test2 не дожидается обновления или перезагрузки страницы. Предположим, что когда Test1 успешно завершен, Test2 начнется до обновления страницы (т.е. откроет диалоговое окно, выполнит сценарии и т.д.), В то время как страница обновится (что должно было произойти после успешного выполнения Test1). Теперь, когда страница обновляется, окно diaog, открытое из-за Test2, больше не присутствует, а затем Test2 терпит неудачу.
(Кроме того, я не знаю, сколько времени потребуется для обновления страницы. Поэтому я не хочу использовать Thread.sleep(xxxx) перед выполнением Test2)
Кроме того, я не думаю, что
driver.navigate().refresh()
решит мою проблему, поставив ее перед Test2, так как в этом случае моя страница будет обновляться дважды. Проблема заключается в обновлении, которое происходит через код (что неопределенно, так как это может занять 1 сек или 3 с или 5 секунд)