Finding an element in a sub-element in Selenium Webdriver.


We can find an element in a sub-element with Selenium webdriver. First of all we need to identify the element with help of any of the locators like id, class, name, xpath or css. Then we have to identify the sub-element with the findElements(By.xpath()) method.

We can identify the sub-element from the element, by localizing it with the element and then passing the expression (./child::*) as a parameter to the findElements(By.xpath())

Syntax

element.findElements(By.xpath("./child::*"))

Let us identify the tagname of the sub-elements of element ul in below html code−

Example

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 SubElement{
   public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      driver.get("https://www.tutorialspoint.com/about/about_careers.htm");
      // identify element
      WebElement t=driver.findElement(By.xpath("//ul[@class='toc chapters']"));
      //identify sub-elements with ./child::* expression in xpath
      List c = t.findElements(By.xpath("./child::*"));
      // iterate sub-elements
      for ( WebElement i : c ) {
         //getTagName() to get tag of sub-elements
         System.out.println(i.getTagName());
      }
      driver.close();
   }
}

Output

Updated on: 18-Sep-2020

8K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements