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