2015-08-14 68 views
1

我有一個頁面,其中有下面的HTML如何通過另一臺價值

<tbody> 
    <tr> 
     <td> 
      <div> 
       <input /> <----what I want to click 
      </div> 
     </td> 
     <td></td> 
     <td></td> 
     <td> 
      <div> 
       <a> 
       <span>text here</span> <-----how i find correct table row 
       </a> 
      </div> 
     </td> 
    </tr> 
</tbody> 

的問題是「文字在這裏」一表的文字點擊複選框是信息的唯一的一塊,我將有找到正確的複選框來點擊。

我已經試過是

this.getDriver().findElement(By.xpath("//span[text()='" + texthere + "']/parent::tr/following-sibling::td/div/input")).click(); 

如何以往任何時候都不能找到的元素。

任何幫助,將不勝感激。

回答

0

試試這個 *先找到你想要 *然後找到所需的元素類型的始祖(你的情況「TR」) 子節點*然後得到這個TR低於第一輸入元件

String xpathExpression = "//tbody//span[contains(., 'text here')]/ancestor::tr[1]//input"; 
driver.findElement(By.xpath(xpathExpression)).click(); 
0

嘗試用下面的XPath: -

this.getDriver().findElement(By.xpath("//tbody//td[text()='"+texthere+"']/preceding-sibling::td//input")).click(); 
以上的XPath

,我們發現TD標籤,它包含在這裏文本並參照這個標籤,我們發現它的前面的兄弟td,使它包含輸入標籤