import ConfigParser import json import os import sys import unittest from network import get_lan_ip repo_root = os.path.abspath(os.path.join(__file__, "../..")) sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver")) sys.path.insert(1, os.path.join(repo_root, "tools", "wptserve")) from wptserve import server from selenium import webdriver class WebDriverBaseTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = create_driver() cls.webserver = server.WebTestHttpd(host=get_lan_ip()) cls.webserver.start() cls.webserver.where_is = cls.webserver.get_url @classmethod def tearDownClass(cls): cls.webserver.stop() if cls.driver: cls.driver.quit() def create_driver(): config = ConfigParser.ConfigParser() config.read('webdriver.cfg') section = os.environ.get("WD_BROWSER", 'firefox') if config.has_option(section, 'url'): url = config.get(section, "url") else: url = 'http://127.0.0.1:4444/wd/hub' capabilities = None if config.has_option(section, 'capabilities'): try: capabilities = json.loads(config.get(section, "capabilities")) except: pass mode = 'compatibility' if config.has_option(section, 'mode'): mode = config.get(section, 'mode') if section == 'firefox': driver = webdriver.Firefox() elif section == 'chrome': driver = webdriver.Chrome() elif section == 'edge': driver = webdriver.Remote() elif section == 'ie': driver = webdriver.Ie() elif section == 'selendroid': driver = webdriver.Android() return driver