Here’s a step-by-step approach to handling WebTable in Selenium Java:
WebTable in Selenium - Definition & Key Points
π Definition:
A WebTable in Selenium refers to an HTML table
(<table> tag) used to organize data in a tabular format on a web page.
Selenium provides methods to interact with and extract data from these tables
dynamically.
1.
WebTable Structure:
<thead> contains column headers, <tbody> holds
table data.
2. Locating a WebTable:
Identified using locators like By.id, By.className,
By.xpath, etc.
3. Fetching Table Rows & Columns:
Use findElements(By.tagName("tr")) for rows.
Use findElements(By.tagName("td")) for columns.
4. Extracting Cell Data:
Retrieve text using .getText() method.
5. Iterating Through Table Data:
Loop through rows and columns using nested loops.
6. Clicking Elements Inside a Table:
Locate buttons or links inside specific rows/columns and
interact with them.
7.
Handling Dynamic WebTables:
8. Converting WebTable Data:
Store data in Lists, Maps, or Excel files for automation
reporting.
9. Use Cases in Automation Testing:
Data validation, form filling, sorting/filter testing,
data-driven testing, etc.
First, inspect the HTML structure of the WebTable.
A standard table follows this pattern:
|
<table id="employeeTable">
<thead>
<tr>
<th>Name</th>
<th>Role</th>
<th>Department</th>
</tr>
</thead>
<tbody>
<tr>
<td>John Doe</td>
<td>Software Engineer</td>
<td>IT</td>
</tr>
<tr>
<td>Jane Smith</td>
<td>HR Manager</td>
<td>HR</td>
</tr>
</tbody> </table> |
Basic
WebTable selenium Operations
Use By locator to find the <table> element:
|
Use By
locator to find the <table> element: |
|
WebElement
table = driver.findElement(By.id("employeeTable")); |
|
Fetch All
Rows from the Table |
|
List<WebElement>
rows = table.findElements(By.tagName("tr")); System.out.println("Total
Rows: " + rows.size()); |
|
Fetch All
Columns from a Specific Row |
|
List<WebElement>
columns = rows.get(1).findElements(By.tagName("td")); System.out.println("Total
Columns: " + columns.size()); |
|
Get Cell Data
from a Specific Row & Column |
|
String
cellData = columns.get(1).getText(); // Get 2nd column data from 1st row System.out.println("Cell
Data: " + cellData); |
|
Iterate
Through the Entire Table (All Rows & Columns) |
|
for (int i =
1; i < rows.size(); i++) { // Start from 1 to skip header List<WebElement> cols =
rows.get(i).findElements(By.tagName("td")); for (WebElement col : cols) { System.out.print(col.getText() +
" | "); } System.out.println(); } |
|
Convert
WebTable Data into a List |
|
List<String>
tableData = new ArrayList<>(); for (int i = 1;
i < rows.size(); i++) { List<WebElement> cols =
rows.get(i).findElements(By.tagName("td")); for (WebElement col : cols) { tableData.add(col.getText()); } } System.out.println("Table
Data: " + tableData); |
Comments
Post a Comment