1import ConfigParser 2import json 3import os 4import sys 5import unittest 6 7from network import get_lan_ip 8 9repo_root = os.path.abspath(os.path.join(__file__, "../..")) 10sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver")) 11sys.path.insert(1, os.path.join(repo_root, "tools", "wptserve")) 12from wptserve import server 13from selenium import webdriver 14 15 16class WebDriverBaseTest(unittest.TestCase): 17 @classmethod 18 def setUpClass(cls): 19 cls.driver = create_driver() 20 21 cls.webserver = server.WebTestHttpd(host=get_lan_ip()) 22 cls.webserver.start() 23 cls.webserver.where_is = cls.webserver.get_url 24 25 @classmethod 26 def tearDownClass(cls): 27 cls.webserver.stop() 28 if cls.driver: 29 cls.driver.quit() 30 31 32def create_driver(): 33 config = ConfigParser.ConfigParser() 34 config.read('webdriver.cfg') 35 section = os.environ.get("WD_BROWSER", 'firefox') 36 if config.has_option(section, 'url'): 37 url = config.get(section, "url") 38 else: 39 url = 'http://127.0.0.1:4444/wd/hub' 40 capabilities = None 41 if config.has_option(section, 'capabilities'): 42 try: 43 capabilities = json.loads(config.get(section, "capabilities")) 44 except: 45 pass 46 mode = 'compatibility' 47 if config.has_option(section, 'mode'): 48 mode = config.get(section, 'mode') 49 if section == 'firefox': 50 driver = webdriver.Firefox() 51 elif section == 'chrome': 52 driver = webdriver.Chrome() 53 elif section == 'edge': 54 driver = webdriver.Remote() 55 elif section == 'ie': 56 driver = webdriver.Ie() 57 elif section == 'selendroid': 58 driver = webdriver.Android() 59 60 return driver 61