Selenium WebDriver: Locating Web Elements by `name` Attribute

Learn how to efficiently locate web elements using the `name` attribute in Selenium WebDriver. This tutorial provides a step-by-step guide with Java examples, demonstrating how to use name locators for identifying HTML elements and performing actions within your Selenium test automation scripts.



Locating Web Elements by Name Attribute in Selenium

Introduction to Locating Elements by Name

In Selenium, locating web elements is crucial for automating browser actions. One common way to identify an element is using its `name` attribute. The `name` attribute is a standard HTML attribute and is often used to identify form elements. This tutorial will demonstrate how to locate elements by their `name` attribute using Selenium in Java.

Test Scenario

We will automate these steps:

  1. Launch Firefox browser.
  2. Navigate to a specific URL: `https://www.testandquiz.com/selenium/testing.html`.
  3. Click on a textbox.
  4. Type "Selenium Tutorial" into the textbox.

Step-by-Step Implementation in Selenium (Java)

Step 1: Setting up the Project

This assumes you have an existing Selenium project set up in Eclipse. Create a new Java class named `Name_Test`.

Step 2: Setting up the WebDriver

Download the geckodriver (for Firefox) and set the system property to point to its location. (This step is described in the original text and is omitted here for brevity. The key is setting the path to your geckodriver executable.)

Setting up the Gecko Driver

System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");

Initialize the FirefoxDriver using DesiredCapabilities:

Initializing the Firefox Driver

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver = new FirefoxDriver(capabilities);

Step 3: Navigating to the URL

Use the `driver.navigate().to()` method to open the webpage:

Navigating to the URL

driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");

Step 4: Locating the Element by Name

Inspect the target textbox's HTML code to find its `name` attribute. Use `driver.findElement(By.name("name_attribute_value"))` to locate it.

Locating by Name

driver.findElement(By.name("firstName")); // Assuming name="firstName"

Step 5: Interacting with the Element

Use `sendKeys()` to enter text into the textbox:

Typing into the Textbox

driver.findElement(By.name("firstName")).sendKeys("Selenium Tutorial");

Step 6: Running the Test

Run your Java code to execute the test. (Screenshot illustrating the Eclipse IDE omitted for brevity.)

Conclusion

Locating elements by their `name` attribute is a straightforward approach in Selenium. Remember to always inspect the HTML source to find the correct `name` value.