dynamic table data retrieve - selenium webdriver
java, selenium, selenium-webdriver, testng
Solution
Try below code, this will print all cells data,
// Grab the table
WebElement table = driver.findElement(By.id("divListView"));
// 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"));
// Print the contents of each cell
for (WebElement cell : cells) {
System.out.println(cell.getText());
}
}
Problem
``` <table id="tblListViewHeader" class="adminlist" cellspacing="1" cellpadding="0" style="table-layout: fixed; width: 1003px;"> <tbody> </table> </td> </tr> <tr> <td> <div id="divListView" style="width: 100%; height: 300px; overflow: auto; display: block;"> <table id="tblListView" class="adminlist" cellspacing="1" cellpadding="0" style="table-layout: fixed; width: 100%;"> <tbody data-bind="template: { name: 'ActiveGradeTemplate', foreach: ActiveGrade }"> <tr class="row0"> <td data-bind="text:$index()+1" style="width: 5%;">1</td> <td data-bind="text: GradeName" style="width: 20%;">Vantage Point</td> <td align="right" data-bind="text: DisplayCreatedDate" style="width: 10%;">27 Mar 2013</td> <td align="right" data-bind="text: CreatedByUser" style="width: 10%;">Name</td> <td align="right" data-bind="text: DisplayModifiedDate" style="width: 10%;">27 Mar 2013</td> <td align="right" data-bind="text: ModifiedByUser" style="width: 10%;">Name</td> <td align="center" data-bind="text: Status" style="width: 5%;">Active</td> <td align="center" style="width: 10%;"> <a id="lnkEdit_7" data-bind="click: $root.lnkEdit, attr:{'id':'lnkEdit_' + GradeID}" href="#">Edit</a> <span id="spanEdit_7" data-bind="attr:{'id':'spanEdit_' + GradeID}"></span> </td> </tr> <tr class="row0"> <td data-bind="text:$index()+1" style="width: 5%;">2</td> <td data-bind="text: GradeName" style="width: 20%;">test grade</td> <td align="right" data-bind="text: DisplayCreatedDate" style="width: 10%;">Yesterday</td> <td align="right" data-bind="text: CreatedByUser" style="width: 10%;">Name</td> <td align="right" data-bind="text: DisplayModifiedDate" style="width: 10%;">Yesterday</td> <td align="right" data-bind="text: ModifiedByUser" style="width: 10%;">Name</td> <td align="center" data-bind="text: Status" style="width: 5%;">Active</td> <td align="center" style="width: 10%;"> <a id="lnkEdit_11" data-bind="click: $root.lnkEdit, attr:{'id':'lnkEdit_' + GradeID}" href="#">Edit</a> <span id="spanEdit_11" data-bind="attr:{'id':'spanEdit_' + GradeID}"></span> </td> </tr> ``` How can I retrieve the `td` values for each and every row, this is for Dynamic generation. All the `tr` class names are the same: `<tr class="row0">`. How do I retreive the table data for the above formatted table?