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() 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 the below command as follows:
login_form = driver.find_element(By.ID ,"loginForm")
How to use driver.find_element() 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 method:
Python3
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
keyword = "geeksforgeeks"
driver.get("https: / / www.geeksforgeeks.org / ")
element = driver.find_element(By. ID , "gsc-i-id2" )
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:

Terminal Output –

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; }
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
15 Mar, 2023
Like Article
Save Article