On Github anarang / pyselenium
Created by Anisha Narang | Red Hat Inc.
Programming language : python
Testing framework : unittest
pip install selenium
#!/usr/bin/env python from selenium import webdriver import unittest Class Test(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.get("www.example.com") def test_case(self): #write your test case here def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main()
#test_data.json [ {"name": "echo","id": 1},{"name": "print","id": 2},{"name": "hello world","id": 3} ]
def test_search(): with open(“test_data.json”) as data_file: data_text = json.load(data_file) for each in data_text: search_text = each["name"] var = driver.find_element_by_id("search_box") var.clear() var.send_keys(search_text) driver.find_element_by_name("search").click() element = driver.find_elements_by_class_name('hl') element_text = {z.text.lower() for z in element} for e in element_text: self.assertEqual(search_text.lower(), e, "Search result does not match")
def test_checkbox(): try: checkbox = driver.find_element_by_id("id_1") self.assertTrue(checkbox.is_selected(),"Incorrect filter selection") self.assertTrue(checkbox.is_enabled(),"Checkbox is disabled") except NoSuchElementException: logging.info("No element present for checkbox")
def test_pagination(): element=driver.find_element_by_class_name('pagination') regexp= r"[A-Za-z0-9]+" page_numbers = re.findall(regexp,element.text) prev_element = driver.find_element_by_class_name('disabled') prev_element = prev_element.text self.assertEqual(prev_element, page_numbers[0], "'Prev' NOT disabled") #similarly verify the next element
Generate reports using HTMLTestRunner.py
Code available at: https://github.com/anarang/fusion
@anisha_narang | anarang@redhat.com
Slides available at: http://pyselenium-anisha.rhcloud.com