选择ng-repeat复选框Selenium

时间:2016-05-26 09:55:23

标签: angularjs selenium xpath selenium-webdriver

我有ng-repeat复选框选择:

<label> <input style="display: inline-block; margin-top: 5px"
               type="checkbox" 
               ng-model="entity.checked"
               ng-change="getEntityFromModal(entity.val, entity.checked)" /> <span>{{entity.val}}</span>
</label>

我试图找到标签01所代表的复选框:

multiCheckBoxXPath = "//input(@ng-model='entity.checked')/label[contains(text(),'" +value.substring(0, 2) +"')]";

其中value是复选框旁边显示的string版本的延长版本。显示前两个字母。

我使用[contains(text())通过标签找到它,然后使用指定的ng-model尝试选择相应的复选框。

不幸的是我得到了 -

Unable to find //input(@ng-model='entity.checked')/label[contains(text(),'01')]

我有点卡在这里所以任何想法都赞赏。

2 个答案:

答案 0 :(得分:2)

试试这个xpath

"//span[contains(text(),'" +value.substring(0, 2) +"')]/preceding-sibling::input"

希望它会对你有所帮助.. :)

答案 1 :(得分:1)

如果有多个input元素

,您可以进一步过滤xpath以找到确切的复选框元素
String xpath = "//span[contains(text(),'" +value.substring(0, 2) +"')]/preceding-sibling::input[@type = 'checkbox']"