Я пытаюсь автоматизировать некоторые тестовые случаи, используя Java и Selenium WebDriver. У меня есть следующий сценарий:
- Есть страница под названием "Продукты". Когда я щелкаю ссылку "Просмотр сведений" на странице "Продукт", появляется всплывающее окно (модальное диалоговое окно), содержащее сведения об элементе.
- Когда я нажимаю на кнопку "Закрыть" во всплывающем окне, всплывающее окно закрывается, и страница автоматически обновляется (страница просто перезагружается, содержимое остается неизменным).
-
После закрытия всплывающего окна мне нужно нажать кнопку "Добавить элемент" на той же странице. Но когда WebDriver пытается найти кнопку "Добавить элемент", если скорость интернета слишком высока, WebDriver может найти и щелкнуть элемент.
-
Но если интернет работает медленно, WebDriver находит кнопку до обновления страницы, но как только WebDriver нажимает на кнопку, страница обновляется и возникает
StaleElementReferenceException
. - Даже если используются разные ожидания, все условия ожидания становятся истинными (поскольку содержимое на странице одинаково до и после перезагрузки) даже до перезагрузки страницы и
StaleElementReferenceException
.
Тестовый пример работает нормально, если Thread.sleep(3000);
используется перед нажатием на кнопку "Добавить элемент". Есть ли другой способ обойти эту проблему?