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

Java 获取表大小时如何排除表的第一行和最后一行,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我有一个带有页眉(1行)和页脚(1行)的表格。我得到的表大小和期望值为50,但它返回52,因为它同时计算页眉和页脚行。是否有一种方法可以排除代码中的页眉和页脚行,并获得实际的预期值。这是我获取表格大小的代码 public int getTableSize() throws InterruptedException{ List<WebElement> columnElements = driver.findElements(By.cssSelector("table[class

我有一个带有页眉(1行)和页脚(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();
}
public int getTableSize()引发InterruptedException{
List columnElements=driver.findElements(By.cssSelector(“table[class='table-table-bordered-table-hover-ng-isolate-scope']>tbody>tr”);
返回columnElements.size();
}

您可以在选择器中使用:not来否定第一个子项和最后一个子项

table[class='table table-bordered table-hover ng-isolate-scope']>tbody>tr:not(:first-child):not(:last-child)
最有效(或最便宜)的方法是减去要删除的元素数,在您的情况下,该方法应如下所示:

    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;
    }
public int getTableSize()引发InterruptedException{
List columnElements=driver.findElements(By.cssSelector(“table[class='table-table-bordered-table-hover-ng-isolate-scope']>tbody>tr”);
返回columnElements.size()-2;
}

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

您不能删除
columnElements
的第一项和最后一项吗?“return columnElements.size()-2;”您还应该重命名您的方法,以免在文档中造成任何混乱。如果您最终使用koga73的解决方案,这一点尤其令人担忧。