Popular Searches
Popular Course Categories
Popular Courses

Absolute XPath

XPath in Selenium

Absolute XPath in Selenium

Absolute XPath is a type of XPath expression used in Selenium WebDriver to locate a specific web element by following the complete hierarchy of elements from the root of the HTML document to the target element. It represents the exact path through the DOM structure and normally starts with a single forward slash (/).

XPath is an important locator technique in Selenium because Selenium WebDriver needs a reliable way to identify and interact with elements such as input fields, buttons, links, forms, tables, checkboxes, and other web elements. JustAcademy's Selenium training curriculum includes locators such as ID, XPath, and CSS selectors as part of Selenium WebDriver and web-element automation. Selenium Training Course

You can also explore the Selenium Course Demo for additional information about Selenium automation training.


1. What is Absolute XPath?

Absolute XPath is an XPath expression that identifies a web element by specifying its complete path from the root element of the HTML document to the required element.

For example:

/html/body/div/form/input

This XPath starts from the HTML root and moves through the body, div, form, and finally reaches the input element.

Absolute XPath follows the complete parent-child hierarchy of the DOM.


2. Basic Syntax of Absolute XPath

The general syntax of Absolute XPath is:

/html/body/parent/child/element

Another example is:

/html/body/div/form/input

Each element in the path represents a level in the HTML document.


3. Why is Absolute XPath Used in Selenium?

Selenium WebDriver needs a locator to identify the exact web element on which an automation action must be performed. Absolute XPath can be used when the complete DOM hierarchy is known.

It can be used to:

  • Locate input fields.
  • Locate buttons.
  • Locate links.
  • Locate forms.
  • Locate table cells.
  • Locate deeply nested elements.
  • Perform click operations.
  • Enter data into input fields.
  • Retrieve text from elements.
  • Retrieve element attributes.


4. Understanding the HTML DOM Structure

Before learning Absolute XPath, it is important to understand the DOM hierarchy.

HTML

└── BODY

    └── DIV

        └── FORM

            └── INPUT

The corresponding Absolute XPath is:

/html/body/div/form/input

The XPath follows the hierarchy from the root to the target element.


5. Understanding Parent and Child Relationships

HTML elements are arranged in a parent-child relationship.

<html>

    <body>

        <div>

            <form>

                <input>

            </form>

        </div>

    </body>

</html>

Here:

  • HTML is the parent of body.
  • Body is the parent of div.
  • Div is the parent of form.
  • Form is the parent of input.

The Absolute XPath is:

/html/body/div/form/input


6. Single Slash in Absolute XPath

Absolute XPath normally starts with a single forward slash.

/html/body/div/input

The first slash indicates that XPath navigation starts from the root of the document.

This is different from Relative XPath, which commonly starts with double forward slashes.

//input


7. Example HTML for Absolute XPath

<html>

<body>

<div>

<form>

<input type="text">

<input type="password">

<button>Login</button>

</form>

</div>

</body>

</html>

Possible Absolute XPath expressions are:

/html/body/div/form/input[1]

/html/body/div/form/input[2]

/html/body/div/form/button


8. Absolute XPath for an Input Field

Suppose the webpage contains the following input:

<input type="text">

If the element is located inside HTML, body, div, and form, the Absolute XPath can be:

/html/body/div/form/input

Selenium Java example:

driver.findElement(By.xpath("/html/body/div/form/input")).sendKeys("Admin");


9. Absolute XPath for a Password Field

Consider the following HTML:

<form>

    <input type="text">

    <input type="password">

</form>

If the password field is the second input element, an Absolute XPath may be:

/html/body/div/form/input[2]

Selenium example:

driver.findElement(By.xpath("/html/body/div/form/input[2]")).sendKeys("Password123");


10. Absolute XPath for a Button

Suppose a login button is inside a form:

<form>

    <input type="text">

    <input type="password">

    <button>Login</button>

</form>

The Absolute XPath can be:

/html/body/div/form/button

Selenium example:

driver.findElement(By.xpath("/html/body/div/form/button")).click();


11. Absolute XPath for a Link

Consider:

<html>

<body>

<div>

<nav>

<a href="/home">Home</a>

</nav>

</div>

</body>

</html>

The Absolute XPath for the Home link can be:

/html/body/div/nav/a

Selenium example:

driver.findElement(By.xpath("/html/body/div/nav/a")).click();


12. Absolute XPath with Index

When multiple elements have the same tag name at the same level, an index can be used.

/html/body/div/form/input[1]

This represents the first matching input.

/html/body/div/form/input[2]

This represents the second matching input.

/html/body/div/form/input[3]

This represents the third matching input.


13. Why are Indexes Used?

Indexes help distinguish between multiple elements having the same tag name.

For example:

<form>

    <input type="text">

    <input type="email">

    <input type="password">

</form>

Possible XPath expressions are:

/html/body/form/input[1]

/html/body/form/input[2]

/html/body/form/input[3]


14. Absolute XPath with Multiple Div Elements

Modern web applications often contain many nested div elements.

<html>

<body>

<div>

    <div>

        <div>

            <button>Submit</button>

        </div>

    </div>

</div>

</body>

</html>

The Absolute XPath can be:

/html/body/div/div/div/button

The XPath follows every level of the DOM hierarchy.


15. Absolute XPath for Nested Elements

Consider the following structure:

HTML

└── BODY

    └── DIV

        └── SECTION

            └── FORM

                └── DIV

                    └── INPUT

The Absolute XPath is:

/html/body/div/section/form/div/input

This demonstrates how Absolute XPath can become longer as the DOM hierarchy becomes deeper.


16. Absolute XPath and DOM Hierarchy

Absolute XPath directly represents the DOM hierarchy of a webpage.

HTML

├── HEAD

└── BODY

    ├── HEADER

    ├── MAIN

    │   └── DIV

    │       └── BUTTON

    └── FOOTER

The button may have an Absolute XPath such as:

/html/body/main/div/button


17. Absolute XPath for a Table

Tables contain several nested elements such as table, tbody, tr, and td.

<table>

<tbody>

<tr>

<td>John</td>

<td>QA Tester</td>

</tr>

</tbody>

</table>

An Absolute XPath for the first table cell may be:

/html/body/table/tbody/tr/td[1]

The second table cell may be:

/html/body/table/tbody/tr/td[2]


18. Absolute XPath for a Specific Table Row

If a table contains multiple rows, an index can be used.

/html/body/table/tbody/tr[1]/td[1]

This can represent the first cell of the first row.

/html/body/table/tbody/tr[2]/td[1]

This can represent the first cell of the second row.


19. Absolute XPath Generated by Browser Developer Tools

Browser Developer Tools can help testers inspect the DOM structure of a webpage.

In Chrome:

  1. Open the webpage.
  2. Right-click the required element.
  3. Select Inspect.
  4. Locate the element in the Elements panel.
  5. Right-click the element.
  6. Open the available Copy options.
  7. Copy the XPath.
  8. Validate the XPath before using it in Selenium.


20. Testing Absolute XPath in Chrome Console

An XPath can be tested in the browser console using the $x() function.

$x("/html/body/div/form/input")

If the XPath is valid and matches an element, Chrome returns the matching element.

This is a useful way to verify an XPath before using it in Selenium code.


21. Absolute XPath with Selenium WebDriver

Selenium WebDriver uses the By.xpath() method to locate elements using XPath.

WebElement username = driver.findElement(

    By.xpath("/html/body/div/form/input[1]")

);

After locating the element, Selenium can perform different operations on it.


22. Absolute XPath with sendKeys()

The sendKeys() method is used to enter text into an input element.

driver.findElement(

    By.xpath("/html/body/div/form/input[1]")

).sendKeys("admin");


23. Absolute XPath with click()

The click() method is used to click a web element.

driver.findElement(

    By.xpath("/html/body/div/form/button")

).click();


24. Absolute XPath with getText()

The getText() method retrieves the visible text of an element.

String text = driver.findElement(

    By.xpath("/html/body/div/h1")

).getText();

 

System.out.println(text);


25. Absolute XPath with getAttribute()

The getAttribute() method retrieves the value of an HTML attribute.

String value = driver.findElement(

    By.xpath("/html/body/div/form/input")

).getAttribute("value");

 

System.out.println(value);


26. Absolute XPath with findElements()

The findElements() method can be used when multiple elements match an XPath expression.

List<WebElement> elements = driver.findElements(

    By.xpath("/html/body/div/form/input")

);

 

System.out.println(elements.size());


27. Complete Login Page Example

<html>

<body>

<div>

<form>

<input type="text">

<input type="password">

<button>Login</button>

</form>

</div>

</body>

</html>

Absolute XPath expressions:

/html/body/div/form/input[1]

/html/body/div/form/input[2]

/html/body/div/form/button


28. Complete Selenium Login Example

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

 

public class AbsoluteXPathExample {

    public static void main(String[] args) {

        WebDriver driver = new ChromeDriver();

        driver.get("https://example.com/login");

 

        driver.findElement(

            By.xpath("/html/body/div/form/input[1]")

        ).sendKeys("admin");

 

        driver.findElement(

            By.xpath("/html/body/div/form/input[2]")

        ).sendKeys("admin123");

 

        driver.findElement(

            By.xpath("/html/body/div/form/button")

        ).click();

 

        driver.quit();

    }

}


29. Absolute XPath vs Relative XPath

FeatureAbsolute XPathRelative XPath
Starting PointStarts from the rootCan start from a selected location
Common Syntax/html/body/div//div
PathComplete DOM pathTargeted path
LengthUsually longerUsually shorter
DOM DependencyHighly dependent on hierarchyCan depend on attributes and relationships
MaintenanceCan be affected by structural changesCan be easier to maintain when based on stable attributes
Example/html/body/div/form/input//input[@id='username']


30. Absolute XPath vs ID Locator

FeatureAbsolute XPathID Locator
Selenium MethodBy.xpath()By.id()
IdentificationDOM hierarchyID attribute
Typical LengthLongerShorter
DependencyDOM structureElement ID
Example/html/body/div/form/inputusername


31. Advantages of Absolute XPath

  • It represents the complete DOM hierarchy.
  • It can locate deeply nested elements.
  • It can be used when specific attributes are not available.
  • It helps beginners understand XPath navigation.
  • It is useful for analyzing DOM relationships.
  • It can be used directly with Selenium WebDriver.
  • It can help during debugging and element inspection.


32. Disadvantages of Absolute XPath

  • Absolute XPath can become very long.
  • It is highly dependent on the DOM structure.
  • Changes to parent elements can break the XPath.
  • Indexes can change when elements are added or removed.
  • It can require maintenance after UI changes.
  • It may be difficult to maintain in dynamic web applications.


33. Why Absolute XPath Can Be Fragile

Absolute XPath depends on every element in the path. If any intermediate element changes, the XPath may no longer point to the required element.

Original structure:

html

└── body

    └── div

        └── form

            └── input

XPath:

/html/body/div/form/input

If another div is inserted:

html

└── body

    └── div

        └── div

            └── form

                └── input

The path may become:

/html/body/div/div/form/input

The original XPath may therefore need to be updated.


34. Absolute XPath with Dynamic Web Applications

Modern applications may dynamically add, remove, or rearrange DOM elements. This can affect Absolute XPath expressions.

For example, a page may initially contain:

/html/body/div/form/input

After a UI change, the same element may be located through:

/html/body/div/section/form/input

This is one reason testers should validate locators whenever the application structure changes.


35. Absolute XPath with Indexes and Dynamic Elements

Indexes are especially sensitive to changes in the number or order of elements.

For example:

/html/body/div/form/input[2]

If a new input is inserted before the second input, the required element may become input[3].

Therefore, position-based Absolute XPath expressions should be reviewed carefully when the page contains dynamic content.


36. Absolute XPath in Page Object Model

In the Page Object Model, locators can be stored as variables inside a page class.

public class LoginPage {

    private WebDriver driver;

 

    private By username =

        By.xpath("/html/body/div/form/input[1]");

 

    private By password =

        By.xpath("/html/body/div/form/input[2]");

 

    private By loginButton =

        By.xpath("/html/body/div/form/button");

 

    public LoginPage(WebDriver driver) {

        this.driver = driver;

    }

 

    public void login(String user, String pass) {

        driver.findElement(username).sendKeys(user);

        driver.findElement(password).sendKeys(pass);

        driver.findElement(loginButton).click();

    }

}


37. Absolute XPath with Explicit Wait

Web applications may load elements asynchronously. Selenium can use an explicit wait before interacting with an element.

WebDriverWait wait =

    new WebDriverWait(driver, Duration.ofSeconds(10));

 

WebElement button = wait.until(

    ExpectedConditions.elementToBeClickable(

        By.xpath("/html/body/div/form/button")

    )

);

 

button.click();

JustAcademy's Selenium curriculum also covers waits, synchronization, dynamic elements, and stable test execution strategies. View Selenium Training


38. Common Mistakes in Absolute XPath

  • Using an incorrect DOM hierarchy.
  • Missing an intermediate element.
  • Using an incorrect element index.
  • Copying an XPath from a different page state.
  • Not validating the XPath in Developer Tools.
  • Depending heavily on positions in dynamic pages.
  • Using a broken XPath after a UI structure change.
  • Not checking whether the XPath identifies the intended element.


39. How to Validate Absolute XPath

  1. Open the web application in Chrome.
  2. Right-click the required element.
  3. Select Inspect.
  4. Open the Console tab.
  5. Use the $x() function.
  6. Enter the Absolute XPath.
  7. Check the returned element.
  8. Use the validated XPath in Selenium.

$x("/html/body/div/form/input[1]")


40. Best Practices for Absolute XPath

  • Understand the DOM structure before creating the XPath.
  • Validate every XPath before using it in automation.
  • Use indexes only when necessary.
  • Keep track of changes in the application UI.
  • Review locators after major UI changes.
  • Store locators properly when using the Page Object Model.
  • Prefer stable locator strategies when they are available.
  • Use browser Developer Tools to inspect the element hierarchy.
  • Practice XPath on different types of web applications.


41. When Can Absolute XPath Be Used?

Absolute XPath can be useful in situations where:

  • You need to understand the complete DOM hierarchy.
  • You are learning XPath fundamentals.
  • You are debugging an element location problem.
  • You need to inspect a deeply nested element.
  • Specific element attributes are not useful for identification.
  • You need to understand the exact parent-child path.


42. When Should Absolute XPath Be Avoided?

Absolute XPath should be used carefully when the application has a frequently changing DOM structure.

For example, if a stable ID is available:

driver.findElement(By.id("username"));

A relative XPath based on a stable attribute may also be used:

driver.findElement(By.xpath("//input[@id='username']"));

The appropriate locator depends on the structure and stability of the application under test.


43. Absolute XPath Quick Reference

PurposeExample
Basic XPath/html/body/div/input
First Input/html/body/div/input[1]
Second Input/html/body/div/input[2]
Nested Input/html/body/div/form/input
Button/html/body/div/form/button
Link/html/body/div/nav/a
Table Cell/html/body/table/tbody/tr/td
Selenium LocatorBy.xpath("/html/body/div/input")
Chrome Validation$x("/html/body/div/input")


44. Practical Exercise

Create a simple login page with the following elements:

  • Username input.
  • Password input.
  • Login button.
  • Forgot Password link.

Inspect the page and create an Absolute XPath for every element.

/html/body/div/form/input[1]

/html/body/div/form/input[2]

/html/body/div/form/button

/html/body/div/form/a

Validate each XPath in Chrome using:

$x("YOUR_XPATH")


45. Real-World Automation Flow

Open Browser

↓

Open Web Application

↓

Inspect Required Element

↓

Understand DOM Hierarchy

↓

Create Absolute XPath

↓

Validate XPath

↓

Create Selenium Locator

↓

Locate WebElement

↓

Perform Action

↓

Validate Result

↓

Continue Test Execution


46. Complete Absolute XPath Automation Example

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

 

public class AbsoluteXPathAutomation {

    public static void main(String[] args) {

        WebDriver driver = new ChromeDriver();

 

        driver.get("https://example.com/login");

 

        WebElement username = driver.findElement(

            By.xpath("/html/body/div/form/input[1]")

        );

 

        WebElement password = driver.findElement(

            By.xpath("/html/body/div/form/input[2]")

        );

 

        WebElement loginButton = driver.findElement(

            By.xpath("/html/body/div/form/button")

        );

 

        username.sendKeys("admin");

        password.sendKeys("admin123");

        loginButton.click();

 

        driver.quit();

    }

}


47. Absolute XPath Interview Questions

Q1. What is Absolute XPath?

Absolute XPath is an XPath expression that identifies an element using its complete path from the root of the HTML document.

Q2. How does Absolute XPath normally start?

It normally starts with a single forward slash (/).

Q3. Give an example of Absolute XPath.

/html/body/div/form/input

Q4. What is the main difference between Absolute and Relative XPath?

Absolute XPath follows the complete path from the root, while Relative XPath can locate an element using a more targeted expression and commonly starts with //.

Q5. Can indexes be used in Absolute XPath?

Yes. Indexes such as [1], [2], and [3] can be used to identify specific elements among multiple matching elements.

Q6. Can Selenium use Absolute XPath?

Yes. Selenium WebDriver supports XPath through the By.xpath() locator.

Q7. Why can Absolute XPath break?

It can break when the DOM hierarchy changes because the XPath depends on the complete path from the root to the target element.

Q8. How can Absolute XPath be tested in Chrome?

It can be tested using the $x() function in the browser Console.

Q9. What is the disadvantage of using indexes?

If elements are added, removed, or reordered, the index may change and the XPath may identify a different element.

Q10. Is Absolute XPath useful for learning XPath?

Yes. It helps learners understand the DOM tree, parent-child relationships, XPath syntax, and element navigation.


48. Absolute XPath Learning Checklist

  • Understand HTML DOM structure.
  • Understand root and child elements.
  • Understand parent-child relationships.
  • Understand the single slash syntax.
  • Create basic Absolute XPath.
  • Use indexes with XPath.
  • Inspect elements using Developer Tools.
  • Validate XPath using $x().
  • Use XPath with By.xpath().
  • Use XPath with sendKeys().
  • Use XPath with click().
  • Use XPath with getText().
  • Use XPath with getAttribute().
  • Understand XPath limitations.
  • Compare Absolute and Relative XPath.
  • Practice XPath on real web pages.


49. Common Absolute XPath Examples

/html/body/div

/html/body/div/form

/html/body/div/form/input

/html/body/div/form/input[1]

/html/body/div/form/input[2]

/html/body/div/form/button

/html/body/div/nav/a

/html/body/table/tbody/tr/td

/html/body/main/div/button

/html/body/div/section/form/input


50. Key Points to Remember

  • Absolute XPath starts from the root of the HTML document.
  • It normally uses a single forward slash.
  • It represents the complete DOM hierarchy.
  • It can contain indexes for repeated elements.
  • It can be used with Selenium's By.xpath() method.
  • It can be tested in the browser using $x().
  • It can become lengthy for deeply nested elements.
  • It is sensitive to DOM structure changes.
  • Indexes can change when the page structure changes.
  • Stable locator strategies should be considered when available.
  • Understanding Absolute XPath is important for learning DOM navigation and Selenium element location.


51. Conclusion

Absolute XPath is a Selenium locator technique that identifies a web element by following its complete path from the root of the HTML document to the target element. It provides a clear representation of the DOM hierarchy and is useful for understanding how Selenium locates elements.

Absolute XPath can be used with Selenium WebDriver to perform operations such as entering text, clicking buttons, retrieving text, retrieving attributes, and locating multiple elements. However, because it depends on the complete DOM structure, changes in the hierarchy can affect the locator.

Learning Absolute XPath provides a strong foundation for understanding XPath, DOM navigation, web-element identification, and Selenium automation. JustAcademy's Selenium course covers WebDriver, locators, XPath and CSS selectors, dynamic elements, waits, frameworks, TestNG, real-world projects, and other automation-testing concepts. Explore JustAcademy Selenium Training.

For course information and demo registration, visit Register for Selenium Course Demo.

whatsapp