如何使用Selenium在包含特定文本的表中查找特定行

时间:2014-07-03 23:23:25

标签: selenium webdriver

我的问题与此How to find specific lines in a table using Selenium?类似,只是表行可以按随机顺序排列,我想从特定行中找到具有修复column1值的特定值。即如果公司=" abc"则查找预算。公司" abc"可以出现在表格的任何行中。

示例:

column1:column2:column3


company1:value1:value2:


company2:value1:value2


在这里,我想为company2找到value2。 company2可以出现在表格的任何地方。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用xpath定位器。

用于下表结构

<table> 
<tr> <td> company2</td> <td> value1</td> <td> value2</td> </tr>
</table>

Xpath的

"//td[text()='company2']/following-sibling::td[text()='value2']"


By.xpath("//td[text()='company2']/following-sibling::td[text()='value2']");

编辑我

从td获取文本,你可以使用相同的索引

driver.findElement(By.xpath("//td[text()='company2']/following-sibling::td[2]")).getText();

答案 1 :(得分:0)

感谢SantoshSharma。我会尝试这个。它看起来简短。

普鲁斯&amp; Santosh - 截至目前,我尝试了以下代码,它对我有用。

java.util.List tableRows = baseTable.findElements(By.tagName(&#34; tr&#34;));

    for (WebElement row : tableRows) {

        String companyNameXPath = "td[2]";
        WebElement companyName = row.findElement(By.xpath(companyNameXPath));
        if (companyName.getText().equals(company)) {
            valueString = row.findElement(By.xpath("td[4]")).getText();
            break;
        }
    }