Desidero recuperare i dati dalle tabelle nell'interfaccia utente. Conosco il looping su righe e colonne usando "tr" e "td". Ma quella che il tavolo che ho è qualcosa di simile:Selenium Webdriver - Dati della tabella di recupero
<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>
Come posso fare il mio codice generico, in modo che la presenza di "TH" in mezzo può essere gestito. Attualmente, sto usando questo codice:
// 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
}
}
Ma questo darà a tutti i bambini compresi i collegamenti , o di ingresso ecc all'interno – Sky
non proprio. Il mio esempio restituirebbe solo i bambini di primo livello. Questo significa solo tag tr e th (riferendosi all'esempio). Gli elementi tra
@Sky - L'xpath fornito otterrà solo figli, non discendenti. –