Кнопка «Отправить» без изменения / навигации по странице после нажатия - PullRequest
0 голосов
/ 31 марта 2020

Я работаю над написанием автоматизированных тестов с Selenium для одностраничного веб-приложения, написанного в React-Admin. У меня есть простая страница, где заполняются 4 поля, затем нажимается кнопка «Отправить», чтобы сохранить изменения. Это приводит к тому, что созданный элемент отображается в таблице, отображаемой на странице.

Проблема в том, что когда сценарий Selenium доходит до части нажатия кнопки Submit, сохранение действительно происходит, но страница не изменяется, чтобы показать таблицу с новой записью. Он остается на экране «Правка», где была введена информация для этого элемента / в нижней части находится кнопка «Отправить».

Если я закомментирую @AfterTest, закрывающий браузер, я вижу, что всплывающее окно говорит: «Элемент добавлен - ОТМЕНА», это просто всплывающее окно в стиле закусочной, которое дает пользователю возможность отменить изменения перед окончательной фиксацией. Я даже могу вернуться назад несколько раз и увидеть, что новые элементы существуют - так что это определенно сохранило новый элемент.

На стороне Selenium я сделал следующее.

  • Поместите простой Thread.sleep (3000) непосредственно перед submit.click ();
  • Поставьте условное ожидание WebDriverWait на поиск видимого элемента кнопки

В любом случае страница все равно не исчезнет go после нажатия кнопки Отправить.

Если я просто продублирую строку кода, которая нажимает кнопку, вторая, кажется, уводит страницу на go, как и ожидалось.

Все это кажется мне очень странным и непоследовательным. У меня не было фантазии c времени, когда я пытался понять все, когда / почему / как стоят различные ожидания в Selenium - что-то вроде борьбы.

Если у кого-то есть идеи относительно того, почему страница не исчезает при нажатии кнопки, но фактическое действие все еще выполняется, я хотел бы услышать ваши мысли.

Я чувствую, что должен сделать свой код очень ... не элегантным? при попытке заставить Селен делать то, что я хотел бы. Возможно, это происходит из-за того, что это сайт React-Admin, и мне практически нечего работать при взаимодействии с элементами в DOM, или, что более вероятно, из-за отсутствия у меня опыта.

Любое направление будет высоко оценено.

Спасибо! Боб

1 Ответ

0 голосов
/ 01 апреля 2020

Это оказалось ошибкой в ​​коде, и тест поймал ее.

Хорошая игра, Selenium.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...