如何在每次单击表格中的内容时获取Web表的行数

时间:2016-05-30 17:13:45

标签: java selenium-webdriver collections

我有一张表,其中第一行的第一列有扩展(+)按钮[如果我们点击(+)按钮某些行将被添加到表格中] ..当我克隆扩展按钮时我需要新的行数...请帮忙

这是代码

list rows = m.driver.findElements(By.xpath(“// div [@ id ='table'] / tbody / tr”));         int r = rows.size();

for(int i=1;i<=r;i++)
    {


        WebElement plus=m.driver.findElement(By.xpath("//div[@id='table']/tbody/tr["+i+"]/td[1]")); 

    if(plus.isDisplayed())  //*** expand(+)  button***
    {
        m.driver.findElement(By.xpath(//div[@id='table']/tbody/tr["+i+"]/td[1])).click();   

    }


    }

3 个答案:

答案 0 :(得分:0)

使用webdriver可以用来计算所有行。请注意,名称是复数:

driver.findElementsBy(By.xpath("//table[@id='however-you-find-it']//tr")).getSize();

对于简单的表格来说是可以的:

<table>
  <tbody>
    <tr><td>Row 1, Column 1</td>
        <td>Row 1, Column 2</td></tr>
    <tr><td>Row 2, Column 1</td>
        <td>Row 2, Column 2</td></tr>
  </tbody>
</table>

根据表的构造方式,可能需要一些变化。如果表标题也很重要,您可能需要在计数中包含//table[...]//th]

如果表具有嵌套表,并且您只想计算顶级表的行,请不要使用table[...]//tr,因为它也包含嵌套行,而是table[...]/tr或{{ 1}},其中单斜线表示直接子节点,而不是任何类型tr的后代。

答案 1 :(得分:0)

// To get total row count

public int getRowCount() {

    List rows = m.driver.findElements(By.xpath("//div[@id='table']/tbody/tr"));
    return rows.size();
}

迭代for循环,当for循环条件为false时,它返回更新的大小。

public int updatedCount() {

    for(int = 0 ; i < = getRowCount() ; i++) {
        //..your code 
    }

    return  getRowCount();
}

答案 2 :(得分:0)

  1. 获取表格的初始计数

    List rows = driver.findElements(By.xpath("//div[@id='table']/tbody/tr")); int initialRowCnt = rows.size();

  2. 点击expant(+)按钮

    driver.findElement(By.xpath("//div[@id='table']/tbody/tr["+i+"]/td[1]")).click();

  3. 获取新行数

    List rows = driver.findElements(By.xpath("//div[@id='table']/tbody/tr")); int initialRowCnt = rows.size();

  4. 希望这有帮助