У меня есть таблица с несколькими столбцами и несколькими строками, строки находятся в повторителе, и каждая строка имеет тот же класс. В основном я автоматизирую проверку функциональности поиска в транспортирте, и я хочу посмотреть, присутствует ли найденное значение в результатах, которые указаны. Итак, в основном мне нужно заглянуть внутрь каждого класса или повторителя и проверить ценность? Если значение присутствует или содержится в любом из элементов, которые проходит тест, если тест не проходит.Поиск значения по классу или повторителю в транспортирторе?
ответ
Если предположить, что строка поиска «SearchKey» и результаты отображаются в списке элементов, как показано ниже
<li class="file" ng-repeat="result in results" ng-class="{blahblah}">
<li class="file" ng-repeat="result in results" ng-class="{blahblah}">
<li class="file" ng-repeat="result in results" ng-class="{blahblah}">
Ваш тест должен иметь утверждение что-то вроде ниже
var xpathExp = "//li[contains(.,'" + SearchKey + "')]"
expect(element(by.xpath(xpathExp).isDisplayed()).to.eventually.be.true;
Если вы спрашиваете, что локатор выбрать - «ретранслятор» или «класс», вообще говоря, выбора будет зависеть от того, насколько различны и читаемого ретранслятора и класса у вас есть.
Например, если у вас есть item in items
ретранслятор и product
класса, было бы предпочтительно использовать product
класс, поскольку item in items
является слишком общим ретранслятора и не могут быть различны на странице в данный момент или в будущем (это может стать неожиданностью в один прекрасный день и может привести к потере волос во время отладки).
Или противоположный пример, если у вас есть product in products
ретранслятора и col-md-1
класса, то «ретранслятор» локатор будет предпочтительным, поскольку col-md-1
класса является UI- и layout- ориентированного класса и не содержат или принести любые «данные» -конкретная информация; и это, скорее всего, будет изменено в будущем.
Другое дело, что «ретранслятор» локатор сделает ваши тесты еще более привязаны к AngularJS, но «по классу» подход является немного более общим характером и является агностиком, что приложение построен на.
Что именно вы спрашиваете/нужна помощь? Можете ли вы привести пример, показать код? Да, вы можете выполнить поиск с помощью [повторителя] (http://www.protractortest.org/#/api?view=ProtractorBy.prototype.repeater) или [class/css] (http://www.protractortest.org/# /api?view=webdriver.By.css) – Gunderson
Это очень неопределенный вопрос. Я рекомендую вернуться с конкретной проблемой после того, как вы попытаетесь закодировать решение. –
Отредактировано сообщение @Gunderson – Gudzo