Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
How to find specific lines in a table using Selenium?
We can find specific lines in a table with Selenium webdriver. A table is identified in an html document with
| tag to represent columns. To traverse through table rows and columns we use the method findElements(). To count the total number of rows in table we use size() method available for list − List <WebElement> l=driver.findElements(By.tagName("tr"));
int s= l.size();
To count the total number of columns in table we use size() method available for list − List <WebElement> m=driver.findElements(By.tagName("td"));
int t= m.size();
Let us consider the below table and get the value of TYPE having AUTOMATION TOOL as UFT.
The html structure of a table is described below −
ExampleCode Implementation. import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class TableHandling{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String url = " <a href="https://sqengineer.com/practice-sites/practice-tables-" rel="nofollow noopener noreferrer" target="_blank">https://sqengineer.com/practice-sites/practice-tables-</a> selenium/";
driver.get(url);
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
// identify table
WebElement mytable = driver.findElement(By.xpath("//table[@id='table1']/tbody"));
//identify rows of table.
List<WebElement> r_table = mytable.findElements(By.tagName("tr"));
String b_xpath = "//table[@id='table1']/tbody/tr[";
String a_xpath = "]/td[1]";
//calculate rows number with size()
int rs_c = r_table.size();
//iterate rows of table and check matching condition
for (int r = 2;r <= rs_c; r++) {
String n = driver.findElement(By.xpath(b_xpath + r + a_xpath)).getText();
if(n.contains("UFT")){
// get text of matching cell
String celtxt=driver.findElement(By.xpath("//table[@id='table1']/tbody/tr["+r+"]/td[2]")).getText();
System.out.println("The cell data at particular row is:" + celtxt);
break;
}
}
driver.quit();
}
}
Output
|
Advertisements



