Я работаю над написанием автоматизированных тестов с Selenium для одностраничного веб-приложения, написанного в React-Admin. У меня есть простая страница, где заполняются 4 поля, затем нажимается кнопка «Отправить», чтобы сохранить изменения. Это приводит к тому, что созданный элемент отображается в таблице, отображаемой на странице.
Проблема в том, что когда сценарий Selenium доходит до части нажатия кнопки Submit, сохранение действительно происходит, но страница не изменяется, чтобы показать таблицу с новой записью. Он остается на экране «Правка», где была введена информация для этого элемента / в нижней части находится кнопка «Отправить».
Если я закомментирую @AfterTest, закрывающий браузер, я вижу, что всплывающее окно говорит: «Элемент добавлен - ОТМЕНА», это просто всплывающее окно в стиле закусочной, которое дает пользователю возможность отменить изменения перед окончательной фиксацией. Я даже могу вернуться назад несколько раз и увидеть, что новые элементы существуют - так что это определенно сохранило новый элемент.
На стороне Selenium я сделал следующее.
- Поместите простой Thread.sleep (3000) непосредственно перед submit.click ();
- Поставьте условное ожидание WebDriverWait на поиск видимого элемента кнопки
В любом случае страница все равно не исчезнет go после нажатия кнопки Отправить.
Если я просто продублирую строку кода, которая нажимает кнопку, вторая, кажется, уводит страницу на go, как и ожидалось.
Все это кажется мне очень странным и непоследовательным. У меня не было фантазии c времени, когда я пытался понять все, когда / почему / как стоят различные ожидания в Selenium - что-то вроде борьбы.
Если у кого-то есть идеи относительно того, почему страница не исчезает при нажатии кнопки, но фактическое действие все еще выполняется, я хотел бы услышать ваши мысли.
Я чувствую, что должен сделать свой код очень ... не элегантным? при попытке заставить Селен делать то, что я хотел бы. Возможно, это происходит из-за того, что это сайт React-Admin, и мне практически нечего работать при взаимодействии с элементами в DOM, или, что более вероятно, из-за отсутствия у меня опыта.
Любое направление будет высоко оценено.
Спасибо! Боб