def __run_test_case(case): test_module = importlib.import_module(case.__module__) General.TestModule.Name = case.__module__.split('.')[-1] for browser in Browser.AvailableBrowsers: try: logger.start_test_case(case.__name__, browser) if hasattr(test_module, 'before_launch_browser'): getattr(test_module, 'before_launch_browser')() if hasattr(test_module, 'before_each_case'): getattr(test_module, 'before_each_case')() if launch_browser(browser, Browser.StartURL) is False: raise AssertionError("Launch Browser [" + browser.__name__ + "] Fails!") case() if hasattr(test_module, 'after_each_case'): getattr(test_module, 'after_each_case')() except Exception as e: logger.handle_exception(e) if General.QuickTest is True: return finally: logger.stop_test_case() quit_browser()
def copy(src, destination): try: if os.path.isdir(src): shutil.copytree(src, destination) else: shutil.copy(src, destination) except Exception as e: logger.handle_exception(e)
def handle_args(*args): try: # args[0] should be a conf definition function. args[0]() # remove duplicated items. Browser.AvailableBrowsers = list(set(Browser.AvailableBrowsers)) logger.start_project() func(*args) logger.end_project() except Exception as e: logger.handle_exception(e)
def handle_args(*args): try: # args[0] should be a conf definition function. args[0]() # remove duplicated items. Browser.AvailableBrowsers = list(set( Browser.AvailableBrowsers)) logger.start_project() func(*args) logger.end_project() except Exception as e: logger.handle_exception(e)
def __run_test_module(test_module): General.TestModule.Name = test_module.__name__.split('.')[-1] cases = [] for fun in dir(test_module): if (not fun.startswith("__")) and (not fun.endswith("__")) and ( isinstance(test_module.__dict__.get(fun), types.FunctionType)): if test_module.__dict__.get( fun).__module__ == test_module.__name__: cases.append(fun) for case in cases: if case == 'before_each_case' or case == 'after_each_case' or case == 'before_launch_browser': return for browser in Browser.AvailableBrowsers: try: logger.start_test_case(case, browser) if hasattr(test_module, 'before_launch_browser'): getattr(test_module, 'before_launch_browser')() if hasattr(test_module, 'before_each_case'): getattr(test_module, 'before_each_case')() if launch_browser(browser, Browser.StartURL) is False: raise AssertionError("Launch Browser [" + browser.__name__ + "] Fails!") getattr(test_module, case)() if hasattr(test_module, 'after_each_case'): getattr(test_module, 'after_each_case')() except Exception as e: logger.handle_exception(e) if General.QuickTest is True: return finally: logger.stop_test_case() quit_browser()
def __run_test_module(test_module): General.TestModule.Name = test_module.__name__.split('.')[-1] cases = [] for fun in dir(test_module): if (not fun.startswith("__")) and (not fun.endswith("__")) and (isinstance(test_module.__dict__.get(fun), types.FunctionType)): if test_module.__dict__.get(fun).__module__ == test_module.__name__: cases.append(fun) for case in cases: if case == 'before_each_case' or case == 'after_each_case' or case == 'before_launch_browser': return for browser in Browser.AvailableBrowsers: try: logger.start_test_case(case, browser) if hasattr(test_module, 'before_launch_browser'): getattr(test_module, 'before_launch_browser')() if hasattr(test_module, 'before_each_case'): getattr(test_module, 'before_each_case')() if launch_browser(browser, Browser.StartURL) is False: raise AssertionError("Launch Browser [" + browser.__name__ + "] Fails!") getattr(test_module, case)() if hasattr(test_module, 'after_each_case'): getattr(test_module, 'after_each_case')() except Exception as e: logger.handle_exception(e) if General.QuickTest is True: return finally: logger.stop_test_case() quit_browser()
def launch_browser(browser, url): """ Launch and init a new browser, start with the 'url' """ if browser == Browser.FireFox: logger.step_normal("Launch Browser FireFox. URL = " + url) firefox_capabilities = DesiredCapabilities.FIREFOX # disable the download dialogue fp = webdriver.FirefoxProfile() fp.set_preference('browser.download.manager.showWhenStarting', False) try: if Browser.FireFox.Binary == "": Browser.RunningBrowser = webdriver.Firefox( executable_path=Browser.FireFox.Driver, firefox_profile=fp, capabilities=firefox_capabilities, log_path=os.path.join(General.Path.Result, "firefox.log")) else: Browser.RunningBrowser = webdriver.Firefox( executable_path=Browser.FireFox.Driver, firefox_profile=fp, firefox_binary=FirefoxBinary( firefox_path=Browser.FireFox.Binary), log_path=os.path.join(General.Path.Result, "firefox.log")) if Browser.FireFox.__name__ not in General.VersionInfo: General.VersionInfo[ Browser.FireFox. __name__] = Browser.RunningBrowser.capabilities[ 'browserVersion'] except Exception as e: logger.handle_exception(e) return False elif browser == Browser.Chrome: try: chrome_options = Options() if Browser.HeadlessMode is True: chrome_options.add_argument("--headless") chrome_options.add_argument("--window-size=1920x1080") chrome_options.add_argument("--no-sandbox") Browser.RunningBrowser = webdriver.Chrome( chrome_options=chrome_options, executable_path=Browser.Chrome.Driver) if Browser.Chrome.__name__ not in General.VersionInfo: General.VersionInfo[ Browser.Chrome. __name__] = Browser.RunningBrowser.capabilities['version'] except Exception as e: logger.handle_exception(e) return False elif browser == Browser.IE: ''' os.popen('TASKKILL /F /IM IEDriverServer.exe') dc = DesiredCapabilities.INTERNETEXPLORER.copy() dc['nativeEvents'] = False dc['acceptSslCerts'] = True ''' try: Browser.RunningBrowser = webdriver.Ie( executable_path=Browser.IE.Driver) Browser.RunningBrowser.capabilities['acceptInsecureCerts'] = True # Browser.RunningBrowser.capabilities['nativeEvents'] = False # Browser.RunningBrowser.capabilities['ignoreProtectedModeSettings'] = True # print(Browser.RunningBrowser.capabilities) if Browser.IE.__name__ not in General.VersionInfo: General.VersionInfo[ Browser.IE.__name__] = Browser.RunningBrowser.capabilities[ 'browserVersion'] except Exception as e: logger.handle_exception(e) return False Browser.RunningBrowser.set_window_size(1366, 758) Browser.RunningBrowser.set_window_position(0, 0) Browser.RunningBrowser.maximize_window() Browser.RunningBrowser.set_page_load_timeout(300) Browser.RunningBrowser.implicitly_wait(0) Browser.RunningBrowser.get(url) return True
def launch_browser(browser, url): """ Launch and init a new browser, start with the 'url' """ if browser == Browser.FireFox: logger.step_normal("Launch Browser FireFox. URL = " + url) firefox_capabilities = DesiredCapabilities.FIREFOX # disable the download dialogue fp = webdriver.FirefoxProfile() fp.set_preference('browser.download.manager.showWhenStarting', False) try: if Browser.FireFox.Binary == "": Browser.RunningBrowser = webdriver.Firefox(executable_path=Browser.FireFox.Driver, firefox_profile=fp, capabilities=firefox_capabilities, log_path=os.path.join(General.Path.Result, "firefox.log")) else: Browser.RunningBrowser = webdriver.Firefox(executable_path=Browser.FireFox.Driver, firefox_profile=fp, firefox_binary=FirefoxBinary(firefox_path= Browser.FireFox.Binary), log_path=os.path.join(General.Path.Result, "firefox.log")) if Browser.FireFox.__name__ not in General.VersionInfo: General.VersionInfo[Browser.FireFox.__name__] = Browser.RunningBrowser.capabilities['browserVersion'] except Exception as e: logger.handle_exception(e) return False elif browser == Browser.Chrome: try: chrome_options = Options() if Browser.HeadlessMode is True: chrome_options.add_argument("--headless") chrome_options.add_argument("--window-size=1920x1080") chrome_options.add_argument("--no-sandbox") Browser.RunningBrowser = webdriver.Chrome(chrome_options=chrome_options, executable_path=Browser.Chrome.Driver) if Browser.Chrome.__name__ not in General.VersionInfo: General.VersionInfo[Browser.Chrome.__name__] = Browser.RunningBrowser.capabilities['version'] except Exception as e: logger.handle_exception(e) return False elif browser == Browser.IE: ''' os.popen('TASKKILL /F /IM IEDriverServer.exe') dc = DesiredCapabilities.INTERNETEXPLORER.copy() dc['nativeEvents'] = False dc['acceptSslCerts'] = True ''' try: Browser.RunningBrowser = webdriver.Ie(executable_path=Browser.IE.Driver) Browser.RunningBrowser.capabilities['acceptInsecureCerts'] = True # Browser.RunningBrowser.capabilities['nativeEvents'] = False # Browser.RunningBrowser.capabilities['ignoreProtectedModeSettings'] = True # print(Browser.RunningBrowser.capabilities) if Browser.IE.__name__ not in General.VersionInfo: General.VersionInfo[Browser.IE.__name__] = Browser.RunningBrowser.capabilities['browserVersion'] except Exception as e: logger.handle_exception(e) return False Browser.RunningBrowser.set_window_size(1366, 758) Browser.RunningBrowser.set_window_position(0, 0) Browser.RunningBrowser.maximize_window() Browser.RunningBrowser.set_page_load_timeout(300) Browser.RunningBrowser.implicitly_wait(0) Browser.RunningBrowser.get(url) return True