获取表大小时如何排除表的第一行和最后一行

时间:2015-08-12 17:11:00

标签: java selenium selenium-webdriver

我有一个带有标题(1row)和页脚(1行)的表。我得到表大小和期望值为50但它返回52,因为它计算页眉和页脚行。有没有办法我可以在我的代码中排除页眉和页脚行,并获得实际的预期值。这是我获取表格大小的代码

public int getTableSize() throws InterruptedException{
    List<WebElement> columnElements = driver.findElements(By.cssSelector("table[class='table table-bordered table-hover ng-isolate-scope']>tbody>tr"));
  return  columnElements.size();
}

2 个答案:

答案 0 :(得分:2)

你可以使用:不在你的选择器中否定第一个孩子和最后一个孩子

table[class='table table-bordered table-hover ng-isolate-scope']>tbody>tr:not(:first-child):not(:last-child)

答案 1 :(得分:0)

最有效(或最便宜)的方法是减去要删除的元素数量,在您的情况下,该方法应如下所示:

    public int getTableSize() throws InterruptedException{
        List<WebElement> columnElements = driver.findElements(By.cssSelector("table[class='table table-bordered table-hover ng-isolate-scope']>tbody>tr"));
        return  columnElements.size() - 2;
    }

由于性能问题,我强烈建议将此作为主要解决方案。对我来说,很难想象需要更复杂的解决方案。