Syntax error What are relative locators in Selenium 4.0?

What are relative locators in Selenium 4.0?



The relative or friendly locators in Selenium 4.0 are available with the tagname attribute of the element.

  • above() - Webelement located above with respect to the specified element.

    Syntax −

    driver.findElement(withTagName(“<<tagnamevalue>>”).above(element));

  • below() - Webelement located below with respect to the specified element.

    Syntax −

    driver.findElement(withTagName(“<<tagnamevalue>>”).below(element));

  • toLeftof() - Webelement located to the left of the specified element.

    Syntax −

    driver.findElement(withTagName(“<<tagnamevalue>>”).toLeftOf(element));

  • toRightOf() - Webelement located to the right of the specified element.

    Syntax −

    driver.findElement(withTagName(“<<tagnamevalue>>”).toRightOf(element));

Code Implementation with relative Locators.

Example

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import static org.openqa.selenium.support.locators.RelativeLocator
.withTagName;
public class RelLocator {
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      String url = "https://www.tutorialspoint.com/about/about_careers.htm";
      driver.get(url);
      // maximizing browser with maximize()
      river.manage().window().maximize();
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      WebElement head_label = driver.findElement(By.cssSelector("li[class='heading']"));
      // getting the link text just below head_label web element
      String txt = driver.findElement(withTagName("a").below(head_label))
      .getText();
      System.out.println("The text below heading is " + txt);
      WebElement write =
      driver.findElement(By.xpath("//a[text()='Write for us']"));
      // getting the heading just above Write for us web link
      String txtabove = driver.findElement(withTagName("li").above(write))
      .getText();
      System.out.println("The text above link is " + txtabove);
      WebElement searchinp =
      driver.findElement(By.xpath("//input[@name='search']"));
      // getting the search button to the right of edit box searchinp.
      driver.findElement(withTagName("button").toRightOf(searchinp))
      .click();
      WebElement prntlnk =
      driver.findElement(By.xpath("//a[@class=' hide-on-mobile']"));
      // getting the previous page link to the left of prntlnk.
      String prevlink =
      driver.findElement(withTagName("a").toLeftOf(prntlnk))
      .getText();
      System.out.println("The text left of link is " + prevlink);
      driver.close();
   }
}
Updated on: 2020-06-10T12:28:12+05:30

589 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements