繁体   English   中英

Selenium XPath-使用内部文本定位text()的替代元素?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM