如何使用硒处理WebTables?

时间:2019-04-12 09:38:02

标签: java angular selenium selenium-webdriver

我想以一定角度自动化webtable。这是网站-http://demo.automationtesting.in/WebTable.html

我想捕获所有行的所有记录。这是我尝试过的-

List<WebElement> wbt=drv.findElements(By.cssSelector("div[role='rowgroup'][class='ui-grid-viewport ng-isolate-scope']"));
System.out.println("size"+wbt.size());

for(int i=0; i<wbt.size();i++){
    System.out.println("values-"+wbt.get(i).getText());
}

但是大小是1。

我也尝试了div [class ='ui-grid-contents-wrapper'],但没有成功。

1 个答案:

答案 0 :(得分:1)

您的选择器指向表div和行。要获取表行,可以使用.ui-grid-row选择器,它将为您提供表主体行。

List<WebElement> rows = drv.findElements(By.cssSelector(".ui-grid-row"));
for (WebElement row : rows) {
    System.out.println("values-" + row.getText());
}

要按行获取每个列元素,可以在循环内使用.ui-grid-cell-contents选择器:

List<WebElement> rows = drv.findElements(By.cssSelector(".ui-grid-row"));
for (WebElement row : rows) {
    columns = row.findElements(By.cssSelector(".ui-grid-cell-contents"));
    columns.forEach(column -> System.out.println(column.getText().trim()));
}

您可以了解选择器here

此外,您可能需要等到满足某些条件后才能从When to use explicit wait vs implicit wait in Selenium Webdriver?

获取信息。