XPath Selector in Playwright Java

Profile picture for user arilio666

XPath stands for XML Path. It is W3C recommended technique used to identify and navigate nodes in an XML document. In automation, we use XPath to find elements on a webpage. Like any other language, Playwright supports XPath Selector and all its techniques and functions.

XPath selectors are equivalent to calling Document.evaluate(), where evaluate() is a method of the Document interface that selects elements based on the XPath expression given in parameters. 

Note: XPath does not pierce shadow roots.

Let us check out how we can use XPath selectors in playwright java.

Syntax:

page.locator('//HTML/body')
page.locator('xpath=//html/body'')

 

  • Use the locator method inside double quotes in java.

  • A selector starting with a double forward slash (//) or double dots (..) is assumed to be an XPath selector.

 

Example:

 

We will use the XPath selector for the demo to sign in with the username.

 

With xpath:

 

page.navigate("https://www.programsbuzz.com/user/login");
page.locator("xpath=//input[@id= 'edit-name']").type("Naruto");

 

Without xpath:

 

page.navigate("https://www.programsbuzz.com/user/login");
page.locator("//input[@id= 'edit-name']").type("Naruto");

 

  • "Xpath=" is entirely optional.

  • A single slash "xpath=" is necessary; without this, it will throw an error.

 

With XPath indexing:

 

page.locator("(//button/i[contains(@class,'fa-search')])[1]").click()

 

Sometimes there is a need to fetch an element from many other similar elements. This time, we can use the indexing option to bring by order the element located.