我正在使用Java和Selenium编写测试。在我的目标应用程序DOM中,我需要遍历许多表。我曾经使用过类似的东西:
WebElement mytable = driver.findElement(By.xpath(".//table/tbody"));
List<WebElement> rows_table = mytable.findElements(By.tagName("tr"));
int rows_count = rows_table.size();
for (int row=0; row<rows_count; row++){
List<WebElement> Columns_row = rows_table.get(row).findElements(By.tagName("td"));
int columns_count = Columns_row.size();
System.out.println("Number of cells In Row "+row+" are "+columns_count);
for (int column=0; column<columns_count; column++){
String celtext = Columns_row.get(column).getText();
System.out.println("Cell Value Of row number "+row+" and column number "+column+" Is "+celtext);
}
System.out.println("--------------------------------------------------");
}
但是我一直在寻找一种可以更轻松地处理表格的东西,因此我进行了搜索并发现:
1)
selenium.getTable
2)
GetTable(ElementFinder finder, JavascriptLibrary js)
但是我找不到适合他们的任何代码示例。
长话短说,我想知道是否有比找到
.//tr
或.//td
处理表中的行和列更好的方法? 最佳答案
在Webdriver中未实现getTable。但是您可以尝试一下。
WebDriver driver = new ChromeDriver();
Selenium selenium = new WebDriverBackedSelenium(driver, "your website url");
selenium .getTable("xpath");
selenium.getTable(“ table.1.2”);
getTable(tableCellAddress)参数:
tableCellAddress - a cell address, e.g. "foo.1.4"
Returns: the text from the specified cell
Gets the text from a cell of a table. The cellAddress syntax tableLocator.row.column, where row and column start at 0.
为该方法添加一个禁止警告。