Selenium WebDriver Locating Strategies: Using Tag Names for Element Identification

Learn how to locate web elements using their tag names in Selenium WebDriver. This tutorial explains the simplicity and limitations of this approach, provides practical examples, and emphasizes the importance of selecting the most appropriate locating strategy for robust and reliable test automation.



Selenium WebDriver Locating Strategies: Locating Elements by Tag Name

Locating web elements effectively is crucial for successful Selenium test automation. One of the simplest locating strategies is using the element's tag name. This approach is straightforward, but it's essential to be aware of its limitations. This method is generally less precise than other strategies (like ID or CSS selectors) because multiple elements may share the same tag name.

Locating Elements by Tag Name: A Step-by-Step Example

Let's automate a test case involving a text box and a submit button on a webpage (https://www.testandquiz.com/selenium/testing.html). The test will launch Firefox, navigate to this URL, enter text into the textbox, and click the submit button.

  1. Set up the Environment: Ensure you have Selenium WebDriver (specifically the GeckoDriver for Firefox) set up correctly. You'll need to download GeckoDriver and set the system property in your Java code to point to the location of the executable. The location of the GeckoDriver may vary depending on your system.
  2. Launch Firefox: The below code shows how to launch Firefox using Selenium WebDriver in Java. Make sure that the path to your geckodriver.exe is correct.
  3. Launching Firefox
    
    System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setCapability("marionette", true);
    WebDriver driver = new FirefoxDriver(capabilities);
                    
  4. Navigate to the URL: Use driver.navigate().to("your_url") to open the webpage.
  5. Navigating to URL
    
    driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");
                    
  6. Locate Elements using Tag Name: Use your browser's developer tools (usually by right-clicking and selecting "Inspect" or "Inspect Element") to inspect the HTML of the webpage and find the textbox and submit button. Note their HTML tag names (in this case, "input" for the text box and "button" for the submit button).
  7. Interact with the Elements: Use the driver.findElement(By.tagName()) method to locate the elements and use sendKeys() to enter text into the textbox and click() to click the button:
  8. Interacting with Elements
    
    driver.findElement(By.tagName("input")).sendKeys("C++ Tutorial");
    driver.findElement(By.tagName("button")).click();
                    
  9. Run the Test: Execute your test script. Selenium will interact with the page elements.

Important Considerations for Tag Name Locators

  • Specificity: Tag names are often not unique; multiple elements might share the same tag name. Selenium will interact with the first matching element. Using more specific locators (like ID or CSS selectors) is generally recommended for better test reliability and maintainability.
  • Fragility: Changes to the webpage's HTML structure can affect the accuracy of your test, especially if the structure of the web page changes or if new elements are added. Therefore, using this method might not always be the best option, depending on the circumstances.