[英]Selenium xpath - alternative of text() to locate an element using inner text?
我正在尝试创建一个唯一的XPATH
以在网页的表格中使用硒来选择一个复选框。
HTML
看起来像:
<tr ng-repeat="item in tests ">
<td class="ng-binding">
<span test: 'fa fa-cube greeniconcolor'}[item.type]"/>
<span ng-show="item.type !='test' && item.type !='testset'">
Test
<div class="box-tools pull-right">
<input type="checkbox" ng-model="selected_checkbox[$index]"/>
</div>
</td>
</tr>
我希望我能够拥有一个看起来像这样的XPATH
:
.//td[text()='Test']//input
便可以单击该复选框,但这不起作用。 如果我将其更改为包含并使用“。” 记法代替text()
它确实起作用:
.//td[contains(., 'Test')]//input
但是,如果我做.='Test'
那是行不通的。 我不能使用contains()
方法的原因是该表中也包含Test2
,并且该表也已选择。
如果我不能使用text()
方法在<tr>
标记内包含其他元素,那么关于如何处理的任何建议将不胜感激!
如果我不能使用text()方法在标记中包含其他元素,那么有关该如何处理的任何建议将不胜感激!
您应该尝试使用xpath
normalize-space()
函数,该函数用于从字符串中xpath
和结尾的空格,将空格字符序列替换为一个空格,然后返回结果字符串,如下所示:-
.//td[normalize-space(.)='Test']//input
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.