When working with Selenium in Python, locating elements on a webpage is one of the most essential tasks. One such locator strategy is find_elements_by_name(), which allows you to fetch all elements that share the same name attribute. It returns a list of WebElement objects, which you can loop through or access individually.
Note: The method find_elements_by_name() is deprecated in Selenium 4+, refer to find_element(By.Name) driver method for updated method.
Syntax
driver.find_elements_by_name("name")
- Returns an empty list if no element is found.
- Returns multiple elements if more than one matches.
Example: For instance, consider this page source:
<html>
<body>
<form id="loginForm">
<input name="1" type="text" />
<input name="1" type="password" />
<input name="1" type="submit" value="Login" />
</form>
</body>
<html>
Now after you have created a driver, you can grab an element using -
login_form = driver.find_elements_by_name('1')
Let's try to practically implement this method and get a element instance for "https://www.geeksforgeeks.org/". Let's try to grab search form input using its name "articleTitle". Create a file called run.py to demonstrate find_elements_by_name method:
from selenium import webdriver
driver = webdriver.Firefox()
keyword = "geeksforgeeks"
driver.get("https://www.geeksforgeeks.org/")
elements = driver.find_elements_by_name("articleTitle")
print(element)
Output
First, it will open firefox window with geeksforgeeks, and then select the element and print it on terminal as show below.
Browser Output:

Terminal Output:
