Skip to content

Instantly share code, notes, and snippets.

@stockwellb
Last active July 2, 2023 02:08
Show Gist options
  • Save stockwellb/5817112 to your computer and use it in GitHub Desktop.
Save stockwellb/5817112 to your computer and use it in GitHub Desktop.
Selenium example
# -*- coding: utf-8 -*-
from selenium import selenium
import unittest, time, re
server = "http://example.com/"
def suite():
suite = unittest.TestSuite()
suite.addTest(AssertRouteSelection(u"Montréal-Québec",u"Route Status: MONTRÉAL-QUÉBEC"))
suite.addTest(AssertRouteSelection(u"Montréal-Ottawa",u"Route Status: MONTRÉAL-OTTAWA"))
suite.addTest(AssertRouteSelection(u"Montréal-Toronto",u"Route Status: MONTRÉAL-TORONTO"))
suite.addTest(AssertRouteSelection(u"Niagara-Toronto",u"Route Status: NIAGARA-TORONTO"))
suite.addTest(AssertRouteSelection(u"Ottawa-Toronto",u"Route Status: OTTAWA-TORONTO"))
suite.addTest(AssertRouteSelection(u"Sarnia-Toronto",u"Route Status: SARNIA-TORONTO"))
suite.addTest(AssertRouteSelection(u"Windsor-Toronto",u"Route Status: WINDSOR-TORONTO"))
suite.addTest(AssertRouteSelection(u"Montréal-Halifax",u"Route Status: MONTRÉAL-HALIFAX"))
suite.addTest(AssertRouteSelection(u"Montréal-Gaspé",u"Route Status: MONTRÉAL-GASPÉ"))
return suite
class LogOnHepler():
def login(self, sel):
sel.open("Account/LogOff/")
sel.open("/Portal")
sel.type("id=UserName", "username")
sel.type("id=Password", "password")
sel.click("css=input[type=\"submit\"]")
sel.wait_for_page_to_load("30000")
def logoff(self, sel):
sel.open("Account/LogOff/")
class AssertRouteSelection(unittest.TestCase):
def __init__(self, link, text, methodName='test_assert_route'):
self.link = link
self.text = text
self.logonHelper = LogOnHepler()
unittest.TestCase.__init__(self, methodName)
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*chrome", server)
self.selenium.start()
self.logonHelper.login(self.selenium)
def test_assert_route(self):
sel = self.selenium
sel.click(u"link=" + self.link)
sel.wait_for_page_to_load("30000")
self.failUnless(sel.is_element_present("//div[@id='content']/div/table[@class='DataTable']/tbody/tr"))
self.failUnless(sel.is_text_present(self.text))
def tearDown(self):
self.logonHelper.logoff(self.selenium)
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
runner = unittest.TextTestRunner()
test_suite = suite()
runner.run(test_suite)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment