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. Through Selenium Python API you can access all functionalities of Selenium WebDriver in an intuitive way. This article illustrates about how to use Selenium Python to write automated tests using Python Selenium.
If you have not installed Selenium and its components yet, install them from here – Selenium Python Introduction and Installation. The selenium package itself doesn’t provide a testing tool/framework. One can write test cases using Python’s unittest module. The other options for a tool/framework are py.test and nose.
How to write tests using Selenium in Python
We have used unittest framework of Python to write tests. Let’s test search functionality at Python.org using Python selenium tests. To know more about unittest, visit – unittest Documentation. Explanation for each line is given in code itself.
Code –
# import all required frameworks import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# inherit TestCase Class and create a new test class class PythonOrgSearch(unittest.TestCase):
# initialization of webdriver
def setUp( self ):
self .driver = webdriver.Firefox()
# Test case method. It should always start with test_
def test_search_in_python_org( self ):
# get driver
driver = self .driver
# get python.org using selenium
driver.get("http: / / www.python.org")
# assertion to confirm if title has python keyword in it
self .assertIn("Python", driver.title)
# locate element using name
elem = driver.find_element_by_name("q")
# send data
elem.send_keys("pycon")
# receive data
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
# cleanup method called after every test performed
def tearDown( self ):
self .driver.close()
# execute the script if __name__ = = "__main__":
unittest.main()
|
Output –