Chcę pobrać dane z tabel w interfejsie użytkownika. Wiem o przepuszczaniu wierszy i kolumn za pomocą "tr" i "td". Ale jedna tabela mam jest coś takiego:Selenium Webdriver - Pobieranie danych tabeli
<table>
<tbody>
<tr><td>data</td><th>data</th><td>data</td><td>data</td></tr>
<tr><td>data</td><th>data</th><td>data</td><td>data</td></tr>
<tr><td>data</td><th>data</th><td>data</td><td>data</td></tr>
</tbody>
</table>
Jak mogę uczynić mój kod ogólny, tak że występowanie „TH” w środku mogą być obsługiwane. Obecnie używam tego kodu:
// Grab the table
WebElement table = driver.findElement(By.id(searchResultsGrid));
// Now get all the TR elements from the table
List<WebElement> allRows = table.findElements(By.tagName("tr"));
// And iterate over them, getting the cells
for (WebElement row : allRows) {
List<WebElement> cells = row.findElements(By.tagName("td"));
for (WebElement cell : cells) {
// And so on
}
}
Ale to daje wszystkie dzieci w tym linków lub wejścia itp wewnątrz – Sky
nie bardzo. Mój przykład zwróciłby tylko dzieci pierwszego poziomu. Oznacza to tylko znaczniki tr i th (w odniesieniu do przykładu). Elementy pomiędzy
@Sky - Dostarczona ścieżka xpath dostanie tylko dzieci, a nie potomków. –