Locators Strategies in Selenium Python are methods that are used to locate single or multiple elements from the page and perform operations on the same. Selenium’s Python Module is built to perform automated testing with Python. Selenium Python bindings provides a simple API to write functional/acceptance tests using Selenium WebDriver. After one has installed selenium and checked out – Navigating links using get method, one might want to play more with Selenium Python. After opening page using selenium such as geeksforgeeks, one might want to click some buttons automatically or fill a form automatically or any such automated task. This article revolves around Locating multiple elements in Selenium Python.
Locator Strategies to locate multiple elements
Selenium Python follows different locating strategies for elements. One can locate multiple elements in 7 different ways. Here is a list of locating strategies for Selenium in python –
| Locators | Description |
|---|---|
| find_elements_by_name | All elements with name attribute value matching the location will be returned. |
| find_elements_by_xpath | All elements with xpath syntax matching the location will be returned. |
| find_elements_by_link_text | All elements with link text value matching the location will be returned. |
| find_elements_by_partial_link_text | All elements with partial link text value matching the location will be returned. |
| find_elements_by_tag_name | All elements with given tag name will be returned. |
| find_elements_by_class_name | All elements with matching class attribute name will be returned. |
| find_elements_by_css_selector | All elements with matching CSS selector will be returned. |
find_elements_by_name
With this strategy, all elements with the name attribute value matching the location will be returned. If no element has a matching name attribute, a NoSuchElementException will be raised.
driver.find_elements_by_name("name_of_element")
Example –
For instance, consider this page source:
<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="username" type="username" /> <input name="continue" type="submit" value="Login" /> </form> </body> <html> |
Now after you have created a driver, you can grab elements using –
elements = driver.find_elements_by_name('username')
To check practical Implementation, visit – find_elements_by_name() driver method – Selenium Python
find_elements_by_xpath
With this strategy, all elements with pattern of xpath matching the location will be returned. If no element has a matching element attribute, a NoSuchElementException will be raised.
driver.find_elements_by_xpath("xpath")
Example –
For instance, consider this page source:
<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="continue" type="submit" value="Login" /> </form> </body> <html> |
Now after you have created a driver, you can grab elements using –
login_form = driver.find_elements_by_xpath("/html/body/form[1]")
login_form = driver.find_elements_by_xpath("//form[1]")
To check Practical Implementation, visit – find_elements_by_xpath() driver method – Selenium Python
find_elements_by_link_text
With this strategy, all elements with the link text value matching the location will be returned. If no element has a matching link text attribute, a NoSuchElementException will be raised.
driver.find_elements_by_link_text("Text of Link")
Example –
For instance, consider this page source:
<html> <body> <p>Are you sure you want to do this?</p> <a href="continue.html">Continue</a> <a href="cancel.html">Cancel</a> </body> <html> |
Now after you have created a driver, you can grab elements using –
login_form = driver.find_elements_by_link_text('Continue')
To check practical Implementation, visit – find_elements_by_link_text() driver method – Selenium Python
find_elements_by_partial_link_text
With this strategy, all elements with the partial link text value matching the location will be returned. If no element has a matching partial link text attribute, a NoSuchElementException will be raised.
driver.find_elements_by_partial_link_text("Text of Link")
Example –
For instance, consider this page source:
<html> <body> <p>Are you sure you want to do this?</p> <a href="continue.html">Continue</a> <a href="cancel.html">Cancel</a> </body> <html> |
Now after you have created a driver, you can grab all elements using –
login_form = driver.find_elements_by_partial_link_text('Conti')
To check practical implementation, visit – find_elements_by_partial_link_text() driver method – Selenium Python
find_elements_by_tag_name
With this strategy, all elements with the given tag name will be returned. If no element has a matching tag name, a NoSuchElementException will be raised.
driver.find_elements_by_tag_name("Tag name")
Example –
For instance, consider this page source:
<html> <body> <h1>Welcome</h1> <p>Site content goes here.</p> </body> <html> |
Now after you have created a driver, you can grab all elements using –
login_form = driver.find_elements_by_tag_name('h1')
To check practical Implementation, visit – find_elements_by_tag_name() driver method – Selenium Python
find_elements_by_class_name
With this strategy, the first elements with the matching class attribute name will be returned. If no element has a matching class attribute name, a NoSuchElementException will be raised.
driver.find_elements_by_class_name("class_of_element")
Example –
For instance, consider this page source:
<html> <body> <p class="content">Site content goes here.</p> </body> <html> |
Now after you have created a driver, you can grab all elements using –
content = driver.find_elements_by_class_name('content')
To check practical Implementation, visit – find_elements_by_class_name() driver method – Selenium Python
find_elements_by_css_selector
With this strategy, all elements with the matching CSS selector will be returned. If no element has a matching CSS selector, a NoSuchElementException will be raised.
driver.find_elements_by_css_selector("CSS Selectors")
Example –
For instance, consider this page source:
<html> <body> <p class="content">Site content goes here.</p> </body> <html> |
Now after you have created a driver, you can grab all elements using –
content = driver.find_elements_by_css_selector('p.content')
To check practical implementation, visit – find_elements_by_css_selector() driver method – Selenium Python
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.
Recommended Posts:
- Locating single elements in Selenium Python
- Find Web Elements using Selenium WebDriver
- Selenium Python Tricks
- Selenium Base Mini Project Using Python
- Python | SMS Bomber using Selenium
- Non blocking wait in selenium using Python
- Python | Automating Happy Birthday post on Facebook using Selenium
- How to access popup login window in selenium using Python
- Why do people prefer Selenium with Python?
- Python | Automate Google Search using Selenium
- How to install Selenium in Python
- Selenium Python Basics
- Python - Opening links using Selenium
- Flight-price checker using Python and Selenium
- How to take screenshot using Selenium in Python ?
- How to use close() and quit() method in Selenium Python ?
- How to get title of a webpage using Selenium in Python?
- How to get current_url using Selenium in Python?
- Python | page_source method in Selenium
- Python - find_element_by_id() method in Selenium
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

