Selenium IDE Locating Strategies: Understanding and Avoiding the Deprecated Identifier Locator

Learn about the identifier locator in Selenium IDE and why it's deprecated. This tutorial explains its limitations, demonstrates its unpredictable behavior, and emphasizes the importance of using more robust and reliable locating strategies like `id` or `name` in your Selenium tests for improved stability and accuracy.



Selenium IDE Locating Strategies: Using the Identifier Locator (Deprecated)

In Selenium IDE, locators help identify web elements for automation. The identifier locator attempts to locate an element using its id attribute. If no element with a matching `id` is found, it tries to locate an element using the `name` attribute. It's important to note that this locator type is generally discouraged in modern Selenium testing as it's not directly supported by WebDriver.

Understanding Identifier Locator

The identifier locator attempts to locate the first element that matches either the element's `id` or `name` attribute, whichever is found first. If both are found, only the first will be used.

For example: identifier=myElement. Selenium will first search for an element with the id attribute `"myElement"`. If not found, it attempts to locate an element with the name attribute `"myElement"`.

Using Identifier Locator in Selenium IDE

Let's illustrate with a test case to automate a login interaction on the Rediffmail login page (https://mail.rediff.com/cgi-bin/login.cgi). This test will involve locating and interacting with the username, password fields and the submit button.

  1. Open Selenium IDE: Launch your browser (Firefox is recommended for this example) and open Selenium IDE.
  2. Open the Target URL: Add a command to open the Rediffmail login page:
  3. Opening the Rediffmail Login Page
    
    Command: open
    Target: https://mail.rediff.com/cgi-bin/login.cgi
                
  4. Locate Elements using Inspect: Right-click on each element (username field, password field, submit button) and choose "Inspect" (or "Inspect Element") in your browser's developer tools to view the HTML for the element and either its `id` or `name` attribute.
  5. Add Commands: Add Selenium commands to interact with the elements, using the identifier locator type and selecting either the `id` or `name` attribute as the LocatorStrategy:
  6. Selenium IDE Commands with Identifier Locator
    
    Command: click
    Target: identifier=login1  //Assuming 'login1' is the id of the username field
    
    Command: type
    Target: identifier=login1
    Value: your_username
    
    Command: click
    Target: identifier=password //Assuming 'password' is the id or name of the password field
    
    Command: type
    Target: identifier=password
    Value: your_password
    
    Command: click
    Target: identifier=proceed //Assuming 'proceed' is the id or name of the submit button
    
                
  7. Run the Test: Click "Run" to execute the test.

Limitations of the Identifier Locator

The identifier locator is generally considered a less robust strategy compared to using specific locators like `id` or `name`. Because it relies on finding the first match for either an `id` or `name` attribute, it can lead to unpredictable behavior if these attributes are not assigned consistently or uniquely across page elements. It's not directly supported by WebDriver, making it less reliable and less preferred in modern Selenium tests. Prefer using more specific locators like `id` or `name` whenever possible.