怎么算总数没有。使用selenium webdriver从特定TR标签获取TD标签

时间:2015-12-28 04:18:32

标签: java selenium-webdriver html-table

我有一个简单的表,我想得到每个TR的数量和它的TD,但是我的代码返回了我的总页数TD。

List<WebElement> TRcount = driver.findElements(By.tagName("tr"));
System.out.println(TRcount.size());
if(TRcount.size()>0)
{
    for(int i=0;i<TRcount.size();i++)
    {
        List<WebElement> TDcount = driver.findElements(By.tagName("td"));
        System.out.println("First TR Contains: " + TDcount.size());            
    }
}

表格代码:

<table class="tftable" border="1">
<tr><th>PREVIOUS TEST</th><th>CURRENT TEST</th></tr>
<tr><td>Row:1 Cell:1</td><td>Row:1 Cell:2</td></tr>
<tr><td>Row:2 Cell:1</td><td>Row:2 Cell:2</td></tr>
</table>

我希望代码能够像第一个TR包含2个TD 第二个TR包含2个TD

我当前的代码返回总计4 TD。但我想要TR明智的TD计数。

1 个答案:

答案 0 :(得分:1)

您可以对findElements()代码的各个Web元素执行<tr>

List<WebElement> TRcount = driver.findElements(By.tagName("tr"));

for(WebElement e : TRcount) {
    List<WebElement> TDcount = e.findElements(By.tagName("td"));
    System.out.println("First TR Contains: " + TDcount.size());
}

OR

for(int i=0; i<TRcount.size(); i++) {
    List<WebElement> TDcount = TRCount.get(i).findElements(By.tagName("td"));
    System.out.println("First TR Contains: " + TDcount.size());
}

修改

用于从单个<td>标记中提取文字。

for(int i=0; i<TRcount.size(); i++) {
    List<WebElement> TDcount = TRCount.get(i).findElements(By.tagName("td"));
    System.out.println("First TR Contains: " + TDcount.size());

    // Fetch text from individual '<td>' tags
    for(int j=0; j<TDcount.size(); j++) {
        System.out.println(TDcount.get(j).getText());
    }
}