2016-09-01 5 views
0

У меня есть таблица с несколькими столбцами и несколькими строками, строки находятся в повторителе, и каждая строка имеет тот же класс. В основном я автоматизирую проверку функциональности поиска в транспортирте, и я хочу посмотреть, присутствует ли найденное значение в результатах, которые указаны. Итак, в основном мне нужно заглянуть внутрь каждого класса или повторителя и проверить ценность? Если значение присутствует или содержится в любом из элементов, которые проходит тест, если тест не проходит.Поиск значения по классу или повторителю в транспортирторе?

+0

Что именно вы спрашиваете/нужна помощь? Можете ли вы привести пример, показать код? Да, вы можете выполнить поиск с помощью [повторителя] (http://www.protractortest.org/#/api?view=ProtractorBy.prototype.repeater) или [class/css] (http://www.protractortest.org/# /api?view=webdriver.By.css) – Gunderson

+0

Это очень неопределенный вопрос. Я рекомендую вернуться с конкретной проблемой после того, как вы попытаетесь закодировать решение. –

+0

Отредактировано сообщение @Gunderson – Gudzo

ответ

0

Если предположить, что строка поиска «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; 
1

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

Например, если у вас есть item in items ретранслятор и product класса, было бы предпочтительно использовать product класс, поскольку item in items является слишком общим ретранслятора и не могут быть различны на странице в данный момент или в будущем (это может стать неожиданностью в один прекрасный день и может привести к потере волос во время отладки).

Или противоположный пример, если у вас есть product in products ретранслятора и col-md-1 класса, то «ретранслятор» локатор будет предпочтительным, поскольку col-md-1 класса является UI- и layout- ориентированного класса и не содержат или принести любые «данные» -конкретная информация; и это, скорее всего, будет изменено в будущем.


Другое дело, что «ретранслятор» локатор сделает ваши тесты еще более привязаны к AngularJS, но «по классу» подход является немного более общим характером и является агностиком, что приложение построен на.

 Смежные вопросы

  • Нет связанных вопросов^_^