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

SeleniumAutomation TestingTesting Tools

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

raja
Published on 18-Sep-2020 17:35:38
Advertisements