簡體   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