Как обрабатывать веб-таблицы в угловых с использованием селена? - PullRequest
1 голос
/ 12 апреля 2019

Я хочу автоматизировать веб-таблицу под углом. Вот этот сайт - 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 Ответ

1 голос
/ 12 апреля 2019

Ваш селектор указывает на таблицу 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()));
}

Вы можете узнать о селекторах здесь .

Также вам может потребоваться подождать, пока не будут выполнены некоторые условия, информация, которую вы можете получить: Когда использоватьявное ожидание против неявного ожидания в Selenium Webdriver?

...