How to access web table element in selenium webdriver


How to access web table element in selenium web driver

There are 2 types of HTML table possible in the web.
  • Static web table.
  • Dynamic web table. 
Static web table:  Normally static tables are static in nature, means a number of column and row is fixed, it will never increase in runtime and data inside the each cell is also fixed.
Dynamic web table:  It is just opposite of static web table, here row, column and cell data could be not fixed or we can say dynamic.  It will change at runtime. 


We need to follow few steps to retrieve data from web table 

  1. We need to uniquely identify table object.
  2. Count number of rows present in the table.
  3. Count number of column present in each row. 
  4. Get the value from each cell.  

Step 1. We need to uniquely identify table object

Now we can start with the below table. We need to identify the web table uniquely. 

how to find element from web table using selenium

how to find element from web table using selenium
Here we can see there an id for that highlighted table.  The id is “ customers “.  We know how to identify the web element using XPath or other selenium locators, you can refer my previous post also. 

XPath for this table object

//*[@id="customers"]

Java code 

driver.findelement(By.xapth(“//*[@id="customers"]”);


Step 2: Count Number of rows present in the table.


In HTML table row denoted as <tr>. So we need to count the number of <tr> present under the table. 
We can directly count the number of rows is available on the table. 

how to find element from web table using selenium

XPath for row count
//*[@id='customers']/child::*/child::tr

Above XPath will return 7 element




Java code 

int rowCount = driver.findElements(By.xpath("//*[@id='customers']/child::*/child::tr")).size()

Step 3: Count Number of column present in each row.

Now we need to iterate each row and find out how many columns are there for that row. 

how to find web element from web table using selenium

Xpath for column count for first row (except header)
//*[@id='customers']/child::*/child::tr[1]/child::td
Above XPath will return 3 <td> tag

Java code  

int columnCount = driver.findElements(By.xpath//[@id='customers']/child::*/child::tr[1]/child::td")).size()

Step 4: Get the value from each cell.

Java code

driver.findElement(By.xpath("//*[@id='customers']/child::*/child::tr["+row+"]/child::td["+column+"]"));
element.getText()

Complete java code to iterate each row and column and print the value 

 public static void main(String argc[]){  
 System.setProperty("webdriver.chrome.driver","D:/workspace/TestProject/src/chromedriver.exe");   
 driver = new ChromeDriver() ;  
 driver.get("https://www.w3schools.com/html/html_tables.asp");  
 int rowCount = driver.findElements(By.xpath("//*[@id='customers']/child::*/child::tr")).size();  
 for (int i=1;i<=rowCount;i++){  
   int columnCount =  driver.findElements(By.xpath("//*[@id='customers']/child::*/child::tr["+i+"]/child::td")).size();  
    for(int j=1;j<=columnCount;j++){  
      WebElement element =  driver.findElement(By.xpath("//*[@id='customers']/child::*/child::tr["+i+"]/child::td["+j+"]"));  
      System.out.println(element.getText()+ "  ");  
    }  
   System.out.println();  
  }   
   driver.quit();  
 }  

Share this

Related Posts

Previous
Next Post »

4 comments

comments
November 21, 2017 at 9:39 PM delete

Great blog.you put Good stuff.All the topics were explained briefly.so quickly understand for me.I am waiting for your next fantastic blog.Thanks for sharing.Any coures related details learn...

selenium training in bangalore|

Reply
avatar
May 3, 2018 at 10:00 PM delete

Thanks for the useful information of software testing courses, give more updates on software testing development, First time I visit your blog really nice, I bookmark your blog here after a daily visit. Learn software testing course in Chennai

Reply
avatar
May 7, 2018 at 2:23 AM delete

Those guidelines additionally worked to become a good way to recognize that other people online have the identical fervor like mine to grasp great deal more around this condition. Selenium Training In Bangalore | Best Selenium Training in Bangalore

Reply
avatar
July 20, 2018 at 2:37 AM delete

Thanks for your informative post. Selenium is the future of IT world to improve the quality of products.

Selenium Training institute in Chennai
Selenium Course in Chennai

Reply
avatar