def create_webdriver(self, driver_name): """Create corresponding webdriver and set it to compatibility tester""" if driver_name == 'chrome': self.set_browser(webdriver.Chrome()) elif driver_name == 'firefox': self.set_browser(webdriver.Firefox()) elif driver_name == 'android': self.set_browser(webdriver.Android()) elif driver_name == 'blackberry': self.set_browser(webdriver.BlackBerry()) elif driver_name == 'edge': self.set_browser(webdriver.Edge()) elif driver_name == 'ie': self.set_browser(webdriver.Ie()) elif driver_name == 'opera': self.set_browser(webdriver.Opera()) elif driver_name == 'phantomjs': self.set_browser(webdriver.PhantomJS()) elif driver_name == 'remote': self.set_browser(webdriver.Remote()) elif driver_name == 'safari': self.set_browser(webdriver.Safari()) elif driver_name == 'webkitgk': self.set_browser(webdriver.WebKitGTK()) else: print('web driver name is invalid')
def _make_browser(self, name, *args, **kwargs): name = name.lower() if name == self.CHROME_NAME.lower(): return webdriver.Chrome(*args, **kwargs) elif name == self.FIREFOX_NAME.lower(): return webdriver.Firefox(*args, **kwargs) elif name == self.EDGE_NAME.lower(): return webdriver.Edge(*args, **kwargs) elif name == self.IE_NAME.lower(): return webdriver.Ie(*args, **kwargs) elif name == self.OPERA_NAME.lower(): return webdriver.Opera(*args, **kwargs) elif name == self.SAFARI_NAME.lower(): return webdriver.Safari(*args, **kwargs) elif name == self.BLACKBERRY_NAME.lower(): return webdriver.BlackBerry(*args, **kwargs) elif name == self.PHANTOMJS_NAME.lower(): return webdriver.PhantomJS(*args, **kwargs) elif name == self.ANDROID_NAME.lower(): return webdriver.Android(*args, **kwargs) elif name == self.WEBKITGTK_NAME.lower(): return webdriver.WebKitGTK(*args, **kwargs) else: raise ValueError('{} is not a supported browser.'.format(name))
def main(): if len(argv) < 2: raise Exception("Must provide a valid html base directory") if len(argv) < 3: raise Exception("Must provide a valid results directory") html_dir = argv[1] results_dir = argv[2] if not path.exists(results_dir): makedirs(results_dir) fuzz_files_names = get_fuzz_files_names(html_dir) print(fuzz_files_names) for fuzz_file in fuzz_files_names: try: browser = webdriver.WebKitGTK( options=options, desired_capabilities={}) browser.set_page_load_timeout(PAGE_LOAD_TIMEOUT) print("Opening " + fuzz_file) browser.get(FILE_PREFIX + fuzz_file) print("Waiting for page changes") sleep(5) # getting the browser title to test access to the browser # if the browser has crashed this call should throw an exception browser_title = browser.title print(browser_title) print(fuzz_file + " has not crashed the browser") copyfile_to_result(fuzz_file, results_dir, SUCCESS_FLAG) except InvalidSessionIdException as e: print(fuzz_file + " crashed the browser") print(e) copyfile_to_result(fuzz_file, results_dir, CRASH_FLAG) except TimeoutException as e: print(fuzz_file + " timedout loading on the browser") print(e) copyfile_to_result(fuzz_file, results_dir, TIMEOUT_FLAG) except: print("A unexpected error ocurred using " + fuzz_file) copyfile_to_result(fuzz_file, results_dir, ERROR_FLAG) finally: try: browser.quit() except: pass
def boot_driver(self): return webdriver.WebKitGTK(**self.browser_args)
def getDriver(self): return webdriver.WebKitGTK()
def main() -> None: config = json_config.connect( join(dirname(__file__), '..', 'config', 'config.json')) webdriver_driver = str.lower(config['webdriver']['driver'] or '') webdriver_path = config['webdriver']['path'] if not webdriver_path: print('Config Error: You must specify a valid webdriver path.') sys.exit(1) if webdriver_driver == 'chrome': browser = webdriver.Chrome(executable_path=webdriver_path) elif webdriver_driver == 'firefox': browser = webdriver.Firefox(executable_path=webdriver_path) elif webdriver_driver == 'edge': browser = webdriver.Edge(executable_path=webdriver_path) elif webdriver_driver == 'ie': browser = webdriver.Ie(executable_path=webdriver_path) elif webdriver_driver == 'safari': browser = webdriver.Safari(executable_path=webdriver_path) elif webdriver_driver == 'opera': browser = webdriver.Opera(executable_path=webdriver_path) elif webdriver_driver == 'phantomjs': browser = webdriver.PhantomJS(executable_path=webdriver_path) elif webdriver_driver == 'webkitgtk': browser = webdriver.WebKitGTK(executable_path=webdriver_path) else: print( 'Config Error: You must specify a valid supported webdriver. ' 'Options: chrome, firefox, edge, ie, safari, opera, phantomjs, webkitgtk' ) sys.exit(1) web_driver_wait = WebDriverWait( browser, float(config['webdriver']['timeout']) if config['webdriver']['timeout'] else 2) # MNSU eServices browser.get(config['eservices']['url']) # Login elem = web_driver_wait.until( expected_conditions.presence_of_element_located((By.ID, 'userName'))) username = config['eservices']['username'] if config['eservices'][ 'username'] else input('eServices Username:'******'password'))) pwd = config['eservices']['password'] if config['eservices'][ 'password'] else get_password_from_terminal(config) elem.send_keys(pwd + Keys.RETURN) web_driver_wait.until( expected_conditions.title_contains('Student Employment')) # Days where time has already been entered, so we don't go over them again (wasting time) days_entered = list() try: elems = web_driver_wait.until( expected_conditions.presence_of_all_elements_located( (By.CSS_SELECTOR, 'tbody > tr'))) except selenium_exceptions.TimeoutException: # if no time has been entered, selenium will timeout searching for elements elems = list() for elem in elems: txt = elem.find_element_by_css_selector('td').text if txt != 'Total Hours': days_entered.append(txt) standardize_dates(days_entered) # Go to the "add time" page elem = web_driver_wait.until( expected_conditions.presence_of_element_located((By.ID, 'addTime'))) elem.click() specific_file = input('Load from specific file? (empty for default.json, ' 'specify the filename without json extension):') if not specific_file: submit_times_from_file(web_driver_wait, skip_days=days_entered) else: submit_times_from_file(web_driver_wait, specific_file, days_entered) browser.quit()