Interacting with Webpage – Selenium Python

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. To open a webpage using Selenium Python, checkout – Navigating links using get method – Selenium Python. Just being able to go to places isn’t terribly useful. What we’d really like to do is to interact with the pages, or, more specifically, the HTML elements within a page. First of all, we need to find one. WebDriver offers a number of ways to find elements. For example, given an element defined as:

filter_none

edit
close

play_arrow

link
brightness_4
code

<input type="text" name="passwd" id="passwd-id" />

chevron_right


To find an element one needs to use one of the locating strategies, For example,

element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")

Also, to find multiple elements, we can use –

elements = driver.find_elements_by_name("passwd")

One can also look for a link by its text, but be careful! The text must be an exact match! One should also be careful when using XPATH in WebDriver. If there’s more than one element that matches the query, then only the first will be returned. If nothing can be found, a NoSuchElementException will be raised.
WebDriver has an “Object-based” API, we represent all types of elements using the same interface. This means that although one may see a lot of possible methods one could invoke when one hits IDE’s auto-complete key combination, not all of them will make sense or be valid. To check all methods, checkout Locator Strategies – Selenium Python
So after getting an element what next? One might want to enter text into a field, for example,

element.send_keys("some text")

One can simulate pressing the arrow keys by using the “Keys” class:



element.send_keys(" and some", Keys.ARROW_DOWN)

Also note, it is possible to call send_keys on any element, which makes it possible to test keyboard shortcuts such as those used on Gmail.
One can easily clear the contents of a text field or textarea with the clear method:

element.clear()

Project Example –
Let’s try to search something automatically at geeksforgeeks
Program –

filter_none

edit
close

play_arrow

link
brightness_4
code

# import webdriver
from selenium import webdriver
  
# create webdriver object
driver = webdriver.Firefox()
  
  
# get geeksforgeeks.org
  
# get element 
element = driver.find_element_by_id("gsc-i-id2")
  
# send keys 
element.send_keys("Arrays")

chevron_right


Output-

Interacting-with-Webpage-Selenium-Python




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.