🚀 NEW FEATURE: Edit & Rewind - Discover a new, smarter way to edit long and complex tests

Close announcement

Ultimate Guide to Selectors: Locators in Selenium Webdriver

locators in selenium

One of the key components of using Selenium is locators, which allow testers to identify and interact with HTML elements on a web page. Understanding and effectively using different types of Selenium locators is pivotal in automating web interactions.

Each locator, from the simple ID and Class Name to the more complex XPath and CSS selectors, has its place and utility in Selenium WebDriver. They enable precise identification and interaction with various elements on the web page, playing a crucial role in the success of automated testing scripts.

In this comprehensive guide, we will explore the different types of locators in Selenium WebDriver and learn how to use them effectively.

Selenium alternative meme

Introduction to Locators in Selenium WebDriver

When automating web applications, it is essential to be able to perform specific actions on HTML elements. Selenium locators provide a way to identify these elements on a web page, allowing automation tools to interact with them just like a human would.

Selenium WebDriver supports various types of locators, each with its unique way of identifying elements.

For more Selenium tips & tricks check our Selenium Cheat Sheet.

Understanding the DOM and Locating Web Elements

In this Selenium tutorial, we delve into the intricacies of the Document Object Model (DOM) and the methods of locating web elements within it, which are crucial for any Selenium IDE user.

The DOM essentially structures a web page as a tree, with each HTML element representing a node. This hierarchical arrangement allows Selenium to interact with the correct GUI elements like text boxes, buttons, etc.

To effectively locate an element on the page, Selenium provides various locators that identify unique attributes of these elements, such as ID, name, class, etc.

Understanding how to use these locators to find and manipulate elements is fundamental for successful automation scripts in Selenium.

ID Locator in Selenium

Among the 8 locators in Selenium, the ID Locator stands out as a primary method for finding elements on a web page. It leverages the unique ID attribute, which is ideally exclusive to each element.

In Selenium, the find_element_by_id method is employed to locate elements using their ID. However, it's vital to remember that not all elements possess a unique ID. In situations where elements lack an ID or have duplicate IDs, other locators become essential.

This approach is integral in ensuring that Selenium interacts with the intended element in the page, maintaining the accuracy of the automated testing process.

Name Locator in Selenium

The Name locator, another essential tool in Selenium's arsenal, targets the "name" attribute of web elements. While not always unique, the name attribute can be a reliable locator in specific contexts. Using the find_element_by_name method in Selenium WebDriver, we can locate these elements. However, if multiple elements share the same name, Selenium will default to the first one encountered in the DOM. This feature emphasizes the need for a comprehensive understanding of the DOM structure and element attributes to effectively identify web elements for interaction.

Focusing on hyperlinks, the Link Text locator in Selenium uses the visible text in anchor (<a>) tags to locate elements. This is particularly useful when dealing with a webpage that contains numerous links. The find_element_by_link_text method requires the exact text of the hyperlink for successful element location. This specificity ensures that Selenium interacts with the correct link, crucial for tasks like navigating through a site or verifying link destinations. Understanding this locator is a significant part of any comprehensive tutorial on locators in Selenium WebDriver.

The Partial Link Text locator offers a more flexible approach than the Link Text locator. It allows locating elements by matching only a fragment of the hyperlink text. This method is particularly useful when dealing with long or dynamically changing link texts. The find_element_by_partial_link_text in Selenium WebDriver offers a way to locate these elements efficiently. This locator is especially useful in scenarios where precision is less critical, or when the full link text is cumbersome or impractical to use.

Tag Name Locator in Selenium

The Tag Name locator is a straightforward method to locate elements by their HTML tag. This is particularly useful for identifying all instances of a specific tag on a page. By using the find_element_by_tag_name method in Selenium WebDriver, it's possible to quickly find the first element that matches a given tag name. This locator is particularly handy for tasks like extracting all images or links from a page, as it simplifies the process by targeting common tags such as <img> or <a>.

Class Name Locator in Selenium

The Class Name locator taps into the CSS class attribute of elements. It's invaluable when dealing with elements that share a common CSS class. The find_element_by_class_name method in Selenium WebDriver makes this process straightforward, selecting the first element that matches the specified class name. This method is especially useful in modern web design, where CSS classes are extensively used for styling and grouping elements.

However, it's crucial to remember that classes might not be unique to a single element on a web page, which can lead to selecting an unintended element if not used carefully. This locator is often used in conjunction with other locators to refine the search and ensure the correct element is selected.

How to Use XPath Locator in Selenium

XPath stands as a versatile and powerful tool in Selenium's locator toolkit. As a query language for XML documents, XPath is used in Selenium to locate elements based on their relationships and attributes within the DOM.

The find_element_by_xpath method allows for complex queries, including searching for elements with specific attributes, within certain parts of the DOM, or in relation to other elements. While XPath provides immense flexibility, its complexity can be challenging, and its performance may vary compared to simpler locators like CSS or ID.

Proper understanding and usage of XPath syntax are crucial for effectively using this locator.

Check out also no-code Online XPath Builder by BugBug.

CSS Selector Locator in Selenium

CSS selectors represent a sophisticated method for locating elements, leveraging the styling syntax used in web design. With the find_element_by_css_selector method in Selenium WebDriver, you can target elements based on a wide range of attributes, styles, and hierarchical relationships defined in CSS.

This versatility makes CSS selectors highly effective for identifying elements on a webpage, especially in complex layouts. CSS selectors' syntax offers a balance between simplicity and power, making them a preferred choice in many automation scenarios.

However, similar to XPath, a deep understanding of CSS and the DOM structure is vital for maximizing the potential of CSS selectors.

Read also Xpath vs CSS Selector for more CSS Locators resources.

Best Practices for Using Locators in Selenium

To ensure reliable and maintainable automation scripts, it is important to follow best practices when using locators in Selenium. Here are some tips to consider:

  1. Use unique identifiers like ID whenever possible to ensure accurate identification of elements. Good practices suggest adding unique IDs in the code for the items to be tested, in case they are missing. It streamlines the process of writing scripts for automation itself.

  2. Avoid using dynamic attributes or attributes that may change frequently.

  3. Use more specific locators like ID or CSS selectors instead of generic locators like Tag Name whenever possible.

  4. Use relative locators in Selenium 4 to locate elements in relation to other elements.

  5. Regularly review and update locators to accommodate changes in the application under test.

Locators in Selenium WebDriver are essential for successfully automating web applications. By choosing the right locator strategy and following best practices, testers can ensure accurate and reliable identification of elements on a web page. In this comprehensive guide, we have explored the different types of locators in Selenium WebDriver and learned how to use them effectively.

Remember to choose the most appropriate locator for each scenario and regularly review and update locators as needed.

Check also our guide on Top Selenium Alternatives.

Happy (automated) testing!

Selenium Locators FAQ

What are the 8 Locators?

Selenium WebDriver supports eight locators for identifying elements on a web page. These are: ID, Name, Class Name, Tag Name, Link Text, Partial Link Text, CSS Selector, and XPath. Each locator has its unique way of finding elements in the DOM, catering to different scenarios and requirements in automated testing.

How to Store Locators in Selenium?

In Selenium, locators can be stored as strings in your test scripts. Typically, you define a locator for an element using the appropriate syntax (like CSS selector syntax or XPath) and store it in a variable. This variable is then used in conjunction with Selenium WebDriver commands to interact with the web elements. Storing locators in a central location or using Page Object Models can enhance maintainability and readability.

What are the Default Locators Selenium?

Selenium does not have "default" locators per se, as the choice of locator depends on the specific element and scenario. However, ID and Name are often considered as go-to locators due to their simplicity and efficiency. The choice of locator should be based on the stability, uniqueness, and performance considerations for the elements being targeted.

How to Use All Locators in Selenium?

To use all locators in Selenium, you need to understand the specific syntax and scenarios for each one. For instance, ID and Name are used for unique identifiers, Class Name for CSS classes, and Tag Name for HTML tags.

Link Text and Partial Link Text are specific to anchor tags, while CSS Selector and XPath are more versatile and powerful, allowing for complex and dynamic element location strategies. Incorporating all these locators requires a good understanding of HTML structure and Selenium WebDriver commands.

Speed up the entire testing process now

Automate web app testing easier than ever. Without excessive costs. Faster than coding. Free forever.
Dominik Szahidewicz

Technical Writer

Dominik Szahidewicz is a technical writer with experience in data science and application consulting. He's skilled in using tools such as Figma, ServiceNow, ERP, Notepad++ and VM Oracle. His skills also include knowledge of English, French and SQL.

Outside of work, he is an active musician and pianist, playing in several bands of different genres, including jazz/hip-hop, neo-soul and organic dub.

Don't miss any updates
Get more tips and product related content. Zero spam.