Skip to content
Related Articles

Related Articles

find_element_by_id() driver method – Selenium Python

View Discussion
Improve Article
Save Article
  • Last Updated : 07 Dec, 2021

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 revolves around how to grab or locate elements in a webpage using locating strategies of Selenium Web Driver. More specifically, find_element_by_id() is discussed in this article. With this strategy, the first element with the id attribute value matching the location will be returned. If no element has a matching id attribute, a NoSuchElementException will be raised.
Syntax – 
 

driver.find_element_by_id("id_of_element")

Example – 
For instance, consider this page source: 
 

html




<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_id('loginForm')

 

How to use driver.find_element_by_id() 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 id “gsc-i-id2”. 
Create a file called run.py to demonstrate find_element_by_id method – 
 

Python3




# 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
driver.get("https://www.geeksforgeeks.org/")
 
# get element
element = driver.find_element_by_id("gsc-i-id2")
 
# 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

 

.math-table { border-collapse: collapse; width: 100%; } .math-table td { border: 1px solid #5fb962; text-align: left !important; padding: 8px; } .math-table th { border: 1px solid #5fb962; padding: 8px; } .math-table tr>th{ background-color: #c6ebd9; vertical-align: middle; } .math-table tr:nth-child(odd) { background-color: #ffffff; } 

 

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.

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!