2016-06-07 2 views
0

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

var nativeChannels = element(by.css("label[for='dp-native-9597']")); 

Когда я проверить элемент, он будет выглядеть следующим образом:

div class="switch"input id="dp-native-9597" type="checkbox" ng-model="controls.allNativeChannels" class="cmn-toggle cmn-toggle-round ng-pristine ng-untouched ng-valid" autocomplete="off">label for="dp-native-9597">/label/div 

label for="dp-native-9597"/label 

Я искал способ поставить дикий характер после того, как dp-native- но выглядит следующим образом не допускается. Есть ли способ определить этот тип флажка, чтобы я мог продолжить тестирование?

Благодарим за помощь!

+0

вы пытались с нг-модель = "control.allNativeChannels"? –

ответ

0

Попробуйте использовать нижеследующий xpath. .//label [содержит (@for, "дп-native-")]

0

Есть дикие селекторы карт в CSS (http://www.w3schools.com/cssref/css_selectors.asp):

[attribute^=value] a[href^="https"] Selects every <a> element whose href attribute value begins with "https" 
[attribute$=value] a[href$=".pdf"] Selects every <a> element whose href attribute value ends with ".pdf" 
[attribute*=value] a[href*="w3schools"] Selects every <a> element whose href attribute value contains the substring "w3schools" 

Попробуйте один из них. Я думаю, вы могли бы найти так:

$(".switch[id*='dp-native'] label") 

или модели (http://www.protractortest.org/#/api?view=ProtractorBy.prototype.model):

element(by.model('controls.allNativeChannels')).$('label'); 
+0

Спасибо за ваш ответ и ссылки - использование диких карт сделало трюк и поставило меня под контроль этого сложного флажка! – Misha

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