Skip to content
Related Articles

Related Articles

Improve Article

find_element_by_xpath() driver method – Selenium Python

  • Last Updated : 15 Apr, 2020

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 you have installed selenium and checked out – Navigating links using get method, you might want to play more with Selenium Python. After one has opened a 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 revoles around how to grab or locate elements in a webpage using locating strategies of Seleium Web Driver. More specifically, find_element_by_xpath() is discussed in this article.
XPath is the language used for locating nodes in an XML document. As HTML can be an implementation of XML (XHTML), Selenium users can leverage this powerful language to target elements in their web applications. XPath extends beyond (as well as supporting) the simple methods of locating by id or name attributes, and opens up all sorts of new possibilities such as locating the third checkbox on the page.

Syntax –
driver.find_element_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 an element using –

login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_xpath("//form[1]")

How to use driver.find_element_by_xpath() method in Selenium?

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 nae “search”.
Create a file called run.py to demonstrate find_element_by_xpath method –






# Python program to demonstrate
# selenium
  
# import webdriver
from selenium import webdriver
  
# create webdriver object
driver = webdriver.Firefox()
  
# enter keyword to search
keyword = "geeksforgeeks"
  
# get geeksforgeeks.org
  
# get element 
element = driver.find_element_by_xpath("//form[input/@name ='search']")
  
# print complete element
print(element)

Now run using –

Python run.py

First, it will open firefox window with geeksforgeeks, and then select the element and print it on terminal as show below.
Browser Output –
find_element-driver-method-Selenium-Python
Terminal Output –
terminal-output-find_element-method-Python-selenium

More locators for locating single elements

LocatorsDescription
find_element_by_idThe first element with the id attribute value matching the location will be returned.
find_element_by_nameThe first element with the name attribute value matching the location will be returned.
find_element_by_xpathThe first element with the xpath syntax matching the location will be returned.
find_element_by_link_textThe first element with the link text value matching the location will be returned.
find_element_by_partial_link_textThe first element with the partial link text value matching the location will be returned.
find_element_by_tag_nameThe first element with the given tag name will be returned.
find_element_by_class_namethe first element with the matching class attribute name will be returned.
find_element_by_css_selectorThe first element with the matching CSS selector will be returned.

 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. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :