Мы пытаемся поэкспериментировать с каркасом транспортир + огурец для нашего нового приложения Angular 4.Основная причина, по которой мы думали, что наша нынешняя структура Selenium + Cucumber + java может не подходить к случаю, была связана с угловыми элементами страницы
Я знаю, что существуют разные способы захвата угловых элементов в транспортире.См. Документы здесь: - https://www.protractortest.org/#/locators, но единственные, которые дают транспортиру преимущество, это "by.model", "by.repeater", "by.binding" и т. Д. Однако, это было в случае с угловым js,но с угловыми приложениями 2+ мы видели пользовательские компоненты в DOM.Например, для этого демонстрационного сайта: https://miherlosev.github.io/e2e_angular/ выполнен в угловом 4 и не имеет каких-либо элементов, которые можно идентифицировать с помощью «by.model», «by.repeater», «by.binding», что делает эти утилиты бесполезными.
Мой вопрос: как получить пользовательские компоненты в транспортире, а затем для приложений Angular 4, 5 или 6?Существует ли API, который транспортир предоставляет для элементов страницы, которые не имеют идентификатора, имени, текста кнопки, текста ссылки, а не идентифицируются по пользовательскому имени, вложенному разработчиком?Я не смог найти ни одного примера этого.Из моих онлайн-исследований я вижу, что все используют CSS для захвата элементов - если это так, то, похоже, нет никаких причин отказываться от совершенно тонкой структуры selenium + java.CSS-локаторы также хрупкие.
Ожидания : неявные / явные ожидания все еще используются в обоих типах фреймворков.Я вижу, множество людей использует ожидание в структуре транспортира.Никаких преимуществ там нет.Асинхронный характер транспортира делает его более трудным для управления и порой ненадежным.
Библиотека Angularjs для Java : https://github.com/paul-hammant/ngWebDriver, которая поддерживает приложения JS Angular и также имеет API waitForAngular ().
SetUp: Я согласен с оценками транспортировщиков, так как все, что вам нужно сделать, это настроить config.ts для начала, где селен + Java требует больших настроек.Но в моем случае у меня уже есть зрелая структура фреймворка в java
. Я не могу найти вескую причину того, какие преимущества имеет транспортир по сравнению с моей нынешней фреймворком?
Пожалуйста, дайте мне знать, если я не понимаю этого права или пропускаю важный аспект транспортира.