Повторяющиеся элементы в DOM при выполнении тестов браузера Selenium - PullRequest
0 голосов
/ 30 апреля 2019

Это действительно странная вещь, которую я никогда раньше не видел, и ее трудно найти в Google.

У нас есть одностраничное приложение с внутренними вкладками (не вкладками Chrome, а чисто вкладками, смоделированными в HTML, в приложении).).У нас есть сквозные тесты Selenium C #, которые отлично работают при использовании одной вкладки.Мы создали тест, который запускается с двумя открытыми вкладками html, и они потерпели неудачу.Они потерпели неудачу, потому что модал с кнопкой «Открыть» был дублирован, и когда тест щелкнул по нему, он щелкнул по оригиналу, а не по дубликату, и выдал ошибку.Должен быть только один экземпляр модала и его компонентов, фактически, когда вы запускаете его как обычный пользователь, именно это и происходит.Вот сценарии:

  1. Запуск локально, как обычный сеанс браузера, две вкладки приложения открываются, открывается модальное диалоговое окно, один экземпляр кнопки Открыть в DOM.
  2. Запуск локально,запустить отладку Selenium C # Visual Studio, две вкладки приложения, открыть модальное диалоговое окно, два экземпляра одной и той же кнопки открытия в DOM, тест не пройден, поскольку код ищет «первый», а ошибка - «другой элемент получит щелчок».

Это проект Angular 4 SPA - такого еще не было.В DOM дублируются элементы в зависимости от режима браузера.Кто-нибудь еще видел это?

Не уверен, если это проблема с нашим приложением - в каком случае, почему оно не делает это, когда мы запускаем как обычный пользователь?Или, если проблема в том, как мы запускаем Chrome из набора тестов - мы не указываем какие-либо параметры Chrome при создании нового экземпляра ChromeDriver.

1 Ответ

0 голосов
/ 30 апреля 2019

«другой элемент получит щелчок» не означает, что есть другой элемент для указанного селектора. Обычно это означает, что в верхней части есть другой элемент (скрывающий его). Я бы порекомендовал вам создать скриншот прямо до и после клика и вручную проверить, действительно ли элемент виден в данный момент. Также проверьте, не является ли выбранный вами элемент случайно размером 0,0, и когда пользователь нажимает, ребенок получает щелчок или что-то в этом роде

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