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 -
Python3# import all required frameworksimportunittestfromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeys# inherit TestCase Class and create a new test classclassPythonOrgSearch(unittest.TestCase):# initialization of webdriverdefsetUp(self):self.driver=webdriver.Firefox()# Test case method. It should always start with test_deftest_search_in_python_org(self):# get driverdriver=self.driver# get python.org using seleniumdriver.get("http://www.python.org")# assertion to confirm if title has python keyword in itself.assertIn("Python",driver.title)# locate element using nameelem=driver.find_element_by_name("q")# send dataelem.send_keys("pycon")# receive dataelem.send_keys(Keys.RETURN)assert"Noresultsfound."notindriver.page_source# cleanup method called after every test performeddeftearDown(self):self.driver.close()# execute the scriptif__name__=="__main__":unittest.main()
Output -
