Reputation: 1527
I am trying to grab a column from a data table. Here is my table to use as an example, what I am looking for is to extract the Firstname from the table.
<table style="width:100%">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<td class="abc">Jill</td>
<td class="abc">Smith</td>
<td class="abc">50</td>
</tr>
<tr>
<td class="abc">Eve</td>
<td class="abc">Jackson</td>
<td class="abc">94</td>
</tr>
</table>
How can i modify the code below to give me this result:
Jill
Eve
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) {
System.out.println("content >> " + cell.getText());
}
}
Upvotes: 0
Views: 2258
Reputation: 23805
Using Java 8
you can iterate list using .forEach
after getting only Firstname
column list as below :-
WebElement table = driver.findElement(By.id("searchResultsGrid"));
List<WebElement> firstCells = table.findElements(By.xpath(".//tr/td[1]"));
firstCells.forEach(firstCell->System.out.println("Firstname >> " + firstCell.getText()));
Upvotes: 2