我正在测试一个包含很多表的应用程序。表中的每个单元格都包含我可能需要的各种内容,例如输入文本的ID,下拉列表的ID,复选框等等。 我使用的是一个我找到here的解决方案,但是我有很多元素让它陷入困境,在一个有5行21列的表上,至少需要120秒来获取我需要的所有数据。 / p>
这是我正在使用的一些代码
String[] additInfo = {"name", "id", "value"};
String firstClassName = "tableClassName";
String cssSelector = "tbody tr";
String additInfoName = additInfo[0];
int rowNum, colNum;
rowNum = 0;
WebElement table = driver.findElement(By.className(firstClassName));
List<WebElement> row = table.findElements(By.cssSelector(cssSelector));
print.ln("# of rows: " + row.size());
for (WebElement rowElement : row) {
System.out.println("get row elms");
List<WebElement> column = rowElement.findElements(By.tagName("td"));
System.out.println("number of col: " + column.size());
colNum = 0;
for (WebElement colElement : column) {
String tableText = colElement.getText();
System.out.println("row # " + rowNum + ", col # " + colNum + " text: " + tableText);
WebElement nestedElm;
System.out.println("Get additional Info for " + additInfoName);
String infoUnderTag = "class";
nestedElm = colElement.findElement(By.tagName(infoUnderTag));
for (int i = 1; i < additInfo.length; i++) {
String attribute = nestedElm.getAttribute(additInfo[i]);
System.out.println("\t" + additInfo[i] + ": " + attribute);
}
colNum++;
} //end Elements
rowNum++;
} //end rows
有没有办法加快速度?我拿出了一些不必要的findElements命令,这些命令使速度加倍,但在那些较大的表上它仍然很慢。
提前致谢!