SanchelliosProg
@SanchelliosProg
Java, Android, Software Testing

Как проще всего определить локаторы для тестирования AngularJS приложение с помощью Protractor?

В общем, есть опыт тестирования на Selenium+Java, но стоит задача тестировать на Selenium+JS+Protractor.

Веб-приложение собирается файлом bundle, насколько я понимаю, в разметке html файла очень мало информации (если мы его берём из source). Файл просто огромный, разобраться в нём быстро не получается.

Хотелось бы иметь представление о сугубо ангуляровских локаторах. Возможно ли основываясь на информации из файла bundle.js описывать web-элементы? Или надо брать css, xpath, names из уже сформированных страниц? как избежать падения тестов, в таком случае. если в процессе инициализации элементов на странице, некоторые элементы остаются неопределёнными и тесты валятся (собственно из-за этого и не стали использовать Java+Selenium, очень мало контроля над самими процессами Ангуляра при тестировании).

По поводу последенего пункта есть метод browser.waitForAngular(); но насколько ему можно доверять в ожидании инициализации элементов на странице?

Если что, благодарю за терпение, для меня AngularJS тема очень новая, я ещё пока пытаюсь понять что происходит. Так что, если мой вопрос показался глупым, прошу извинить.
  • Вопрос задан
  • 554 просмотра
Пригласить эксперта
Ответы на вопрос 2
xtozna
@xtozna
Frontend - разработчик.
https://www.npmjs.com/package/elementor - возможно это Вам поможет.
Ответ написан
Комментировать
@Talik0507
Работаю, Живу
(собственно из-за этого и не стали использовать Java+Selenium, очень мало контроля над самими процессами Ангуляра при тестировании).

Ну, спорный вопрос... Придется пошаманить, но контроля предостаточно.

ПО поводу поиска локаторов. Искать локаторы по шаблону наполнения исходной страницы, наверное, можно. Но на сколько я видел Predactor - это фреймворк, для облегчения работы с элементами... Там , конечно, добавлено ряд методов, облегчающие поиск (но не сильно). Тем более, если какие-то элементы формируются динамически, в зависимости от условий, то проще писать тесты, основываясь на локаторах финальных страниц проекта.

По поводу "browser.waitForAngular();" - это всего лишь реализованное ожидание ждущее инициализации определенных элементов ангуляром. Если, будут тормозить какие-то другие аспекты - этот метод уже не сработает... потому, доверять можно. но без шаманств все -равно, в определенных случаях не обойтись.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы