How to find Elements by XPath using Selenium?

Find Elements by XPath

To find the HTML Elements by an XPath (language used for locating nodes in HTML) using Selenium in Python, call find_elements() method and pass By.XPATH as the first argument, and the XPath value as the second argument.

find_elements(By.XPATH, "xpath_value")

find_elements() method returns all the HTML Elements, that satisfy the given XPath value, as a list.

If there are no elements in the document for the given XPath value, then find_elements() method returns an empty list.

Example

Consider the HTML document at the URL https://pythonexamples.org/tmp/selenium/index-55.html, with the following HTML content.

HTML Webpage

<html>
 <body>
  <h2>Hello World</h2>
  <p>This is a paragraph.</p>
  <div name="xyz">Div 1</div>
  <div name="abc">Div 2</div>
 </body>
</html>

In the following Python program, we will find all the div elements in the document using find_elements() method using the XPath value '/html/body/div'.

Python Program (Selenium)

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By

# Setup chrome driver
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

# Navigate to the url
driver.get('https://pythonexamples.org/tmp/selenium/index-55.html')

# Find elements by XPath expression
my_elements = driver.find_elements(By.XPATH, '/html/body/div')
for element in my_elements:
    print(element.get_attribute("outerHTML"))

# Close the driver
driver.quit()

Output

<div name="xyz">Div 1</div>
<div name="abc">Div 2</div>

Summary

In this Python Selenium tutorial, we learned how to find all the HTML elements by given XPath, in webpage, using Selenium.

Quiz on Selenium

Q1. Which of the following is not a popular web driver used in Selenium Python?

Not answered

Q2. What is the method used to find web elements in Selenium Python?

Not answered

Q3. What is the method used to interact with web elements in Selenium Python?

Not answered

Q4. What is the method used to select a value from a drop-down list in Selenium Python?

Not answered

Q5. What is the method used to clear the text from an input field in Selenium Python?

Not answered
Code copied to clipboard successfully 👍