selenium - 在表的特定行中搜索文本

时间:2013-12-09 13:44:24

标签: java selenium html-table

我有一张表一直在变化。 我需要找到包含单词“All”的行,然后单击放置在此特定行的单元格中的链接。 例如:

<table>
 <thead>
   <tr>
    <td class="message_Content"> all cars </td> 
    <td><a class="Toggle" href="javascript:;">disable</a></td>
   </tr>

   <tr>
    <td class="message_Content"> renault </td>  
    <td><a class="Toggle" href="javascript:;">disable</a></td>
   </tr>
 </thead>
<tbody>

我想找到包含单词“all”的行,然后单击同一行中的“disable”一词。

谢谢!

1 个答案:

答案 0 :(得分:1)

下面的内容应该有效。我没有测试代码,但你想要实现的是可能的。尝试以下代码,您可能需要一些细枝

List<WebElement> elements = driver.findElements(By.xpath("//table/thead/tr"));
        for (Iterator<WebElement> iterator = elements.iterator(); iterator.hasNext();) {
            WebElement webElement = iterator.next();
            List<WebElement> findElement = webElement.findElements(By.xpath("./td"));
            if( findElement.size() > 0 ){
                if( findElement.get(0).getText() != null && findElement.get(0).getText().indexOf("all") != -1 ) {
                    List<WebElement> aElement = webElement.findElements(By.xpath("./td/a"));
                    aElement.get(0).click();
                                    break;
                }
            }
        }