def IEdriverbrowser(): # 正常启动 # 规避检测 option = IeOptions() option.add_additional_option('excludeSwitches', ['enable-automation']) driver = webdriver.Ie(options=option) return driver
def driver(request): browser = request.config.getoption('--browser') if browser == 'chrome': print('\n Chrome browser') options = ChromeOptions() options.add_argument('--start-maximized') #options.add_argument('--headless') wd = webdriver.Chrome(options=options) request.addfinalizer(wd.quit) return wd elif browser == 'firefox': print('\n FF browser') options = FirefoxOptions() options.add_argument('--start-maximized') options.add_argument('--headless') wd = webdriver.Firefox(options=options) wd.maximize_window() request.addfinalizer(wd.quit) return wd else: print('\n IE browser') options = IeOptions() # options.add_argument('headless_ie_selenium') wd = webdriver.Ie(options=options) wd.fullscreen_window() request.addfinalizer(wd.quit) return wd #yield wd wd.quit()
def browser(request, driver_path): # setup name = request.config.getoption("--browser") if name == "Chrome": options = ChromeOptions() options.add_argument("headless") options.add_argument("start-maximized") wd = Chrome(executable_path=driver_path+"chromedriver", options=options) elif name == "Firefox": options = FirefoxOptions() options.add_argument("headless") options.add_argument("start-maximized") wd = Firefox(executable_path=driver_path+"geckodriver", options=options) elif name == "Ie": options = IeOptions() options.add_argument("headless") options.add_argument("start-maximized") wd = Ie(options=options) else: print(f"Неизвестный тип браузера \"{name}\"") return None yield wd # teardown wd.quit()
def launch_browser(self, browser_name, url): global driver try: if browser_name == "chrome": chromeoptions = ChromeOptions() chromeoptions.add_argument("start-maximized") chromeoptions.add_argument("disable-notifications") chromeoptions.add_argument("--ignore-certificate-errors") chromeoptions.add_argument("--disable-infobars") chromeoptions.add_argument("--disable-extensions") driver = webdriver.Chrome( executable_path="./drivers/chromedriver.exe", options=chromeoptions) log.info("chrome browser launch successfully") elif browser_name == "firefox": firefoxoptions = FirefoxOptions() firefoxoptions.add_argument("start-maximize") driver = webdriver.Firefox( executable_path="./drivers/geckodriver.exe", options=firefoxoptions) log.info("firefox browser launch successfully") elif browser_name == "ie": ieoptions = IeOptions() ieoptions.add_argument("start-maximize") driver = webdriver.Ie( executable_path="./drivers/IEDriverServer.exe", options=ieoptions) log.info("ie browser launch successfully") else: log.error("invalid browser name") except WebDriverException as e: log.error("exception ", e) driver.implicitly_wait(10) driver.get(url)
def driver(request): browser = request.config.getoption("--browser") if browser == 'firefox': capabilities = webdriver.DesiredCapabilities.FIREFOX.copy() capabilities['timeouts'] = {'implicit': 3000, 'pageLoad': 3000, 'script': 3000} capabilities['loggingPrefs'] = {'browser': 'ALL', 'client': 'ALL', 'driver': 'ALL', 'performance': 'ALL', 'server': 'ALL'} profile = webdriver.FirefoxProfile() profile.set_preference('app.update.auto', False) profile.set_preference('app.update.enabled', False) profile.accept_untrusted_certs = True wd = webdriver.Firefox(firefox_profile=profile, capabilities=capabilities) wd.maximize_window() elif browser == 'chrome': capabilities = webdriver.DesiredCapabilities.CHROME.copy() capabilities['acceptSslCerts'] = True capabilities['acceptInsecureCerts'] = True wd = webdriver.Chrome(desired_capabilities=capabilities) wd.fullscreen_window() elif browser == 'ie': options = IeOptions() options.add_argument("--start-fullscreen") options.add_argument('--headless') wd = webdriver.Ie(options=options) else: print('Unsupported browser!') sys.exit(1) yield wd wd.quit()
def driver(request): browser = request.config.getoption("--browser") if browser == 'firefox': options = FirefoxOptions() # options.add_argument("--headless") capabilities = options.to_capabilities() wd = webdriver.Firefox(desired_capabilities=capabilities) wd.maximize_window() elif browser == 'chrome': options = ChromeOptions() # options.add_argument("--headless") capabilities = options.to_capabilities() wd = webdriver.Chrome(desired_capabilities=capabilities) wd.fullscreen_window() elif browser == 'ie': options = IeOptions() # options.add_argument("--headless") capabilities = options.to_capabilities() wd = webdriver.Ie(desired_capabilities=capabilities) wd.fullscreen_window() else: print('Unsupported browser!') sys.exit(1) yield wd wd.quit()
def session_fixture(request): print('\nSession was started') browser = request.config.getoption("--browser") # if browser == 'chrome': print("chrome will be started") options = ChromeOptions() options.add_argument("--start-fullscreen") options.add_argument('--headless') App.wd = webdriver.Chrome(options=options) elif browser == 'firefox': print("firefox will be started") options = FirefoxOptions() options.add_argument("--start-fullscreen") options.add_argument('--headless') App.wd = webdriver.Firefox(options=options) else: print("ie will be started") options = IeOptions() options.add_argument("--start-fullscreen") options.add_argument('--headless') App.wd = webdriver.Ie(options=options) # # #return wd def session_fin(): App.wd.quit() print('\nSesion was finished') # request.addfinalizer(session_fin)
def IEdrivernobrowser(): # 无头启动 IE_options = Options() IE_options.add_argument("--headless") IE_options.add_argument("--disable-gpu") # 规避检测 option = IeOptions() option.add_additional_option('excludeSwitches', ['enable-automation']) driver = webdriver.Ie(ie_options=IE_options, options=option) return driver
def test_passing_options(self): ie_options = IeOptions() ie_options.ensure_clean_session = True ie_options.ignore_protected_mode_settings = True self.driver = get_webdriver_for("ie", options=ie_options) self.assertIsNotNone(self.driver) self.assertTrue(ie_options.ensure_clean_session) self.assertTrue(ie_options.ignore_protected_mode_settings)
def create_options(self): options = IeOptions() options.add_argument("--disable-popup-blocking") options.add_argument("--start-fullscreen") if super()._use_proxy: pass return options
def setUp(self): WebDriverFactory().setup_iedriver() options = IeOptions() options.ignore_protected_mode_settings = True options.ensure_clean_session = True options.require_window_focus = True options.ignore_zoom_level = True self.driver1 = webdriver.Ie(options=options) self.driver2 = webdriver.Ie(options=options) self.driver1.maximize_window() self.wait1 = WebDriverWait(self.driver1, 5) self.wait2 = WebDriverWait(self.driver2, 5)
def _build_capabilities(self, caps, browser_name): options = None if caps: _, value = caps.popitem() try: browser = value["browserName"] except Exception as e: logger.console("No browser name capability was set") raise e if browser in self.FIREFOX_NAMES: options = FirefoxOptions() elif browser in self.CHROME_NAMES: options = ChromeOptions() elif browser in self.IE_NAMES: options = IeOptions() elif browser == "edge": options = Options() elif browser == "safari": options = DesiredCapabilities.SAFARI.copy() for k, v in value.items(): options.set_capability(k, v) else: if browser_name in self.FIREFOX_NAMES: caps = DesiredCapabilities.FIREFOX.copy() options = FirefoxOptions() elif browser_name in self.CHROME_NAMES: caps = DesiredCapabilities.CHROME.copy() options = ChromeOptions() elif browser_name in self.IE_NAMES: caps = DesiredCapabilities.INTERNETEXPLORER.copy() options = IeOptions() elif browser_name == "edge": caps = DesiredCapabilities.EDGE.copy() options = Options() elif browser_name == "safari": options = DesiredCapabilities.SAFARI.copy() for k, v in caps.items(): options.set_capability(k, v) return options
def browser_driver(request, browser): """Фикстура для запуска браузеров {Chrome, Firefox, IE} в полноэкранном режиме с опцией headless""" web = None if browser == "Chrome": options = ChromeOptions() # options.add_argument("--start-fullscreen") options.add_argument("--headless") web = webdriver.Chrome(options=options) if browser == "Firefox": options = FirefoxOptions() options.add_argument("--headless") web = webdriver.Firefox(options=options) if browser == "IE": options = IeOptions() options.add_argument("--headless") web = webdriver.Ie(options=options) web.maximize_window() request.addfinalizer(web.quit) return web
def browser(request): r = request.config.getoption("--browser") browsers = { "firefox": webdriver.Firefox, "chrome": webdriver.Chrome, "ie": webdriver.Ie } options = { "firefox": FirefoxOptions(), "chrome": ChromeOptions(), "ie": IeOptions() } if r in options: option = options[r] option.headless = True if r in browsers: br = browsers[r](options=option) else: raise Exception("Unknown browser requested") yield br br.quit()
def driver(request): browser = request.config.getoption("--browser") try: timeout_str = request.config.getoption("--timeouts") timeout = int(timeout_str) except ValueError: print("Bad --timeouts value: ".join(timeout_str)) timeout = 10000 if browser == 'firefox': capabilities = webdriver.DesiredCapabilities.FIREFOX.copy() capabilities['timeouts'] = { 'implicit': timeout, 'pageLoad': timeout, 'script': timeout } capabilities['loggingPrefs'] = { 'browser': 'ALL', 'client': 'ALL', 'driver': 'ALL', 'performance': 'ALL', 'server': 'ALL' } profile = webdriver.FirefoxProfile() profile.set_preference('app.update.auto', False) profile.set_preference('app.update.enabled', False) profile.accept_untrusted_certs = True wd = webdriver.Firefox(firefox_profile=profile, capabilities=capabilities) wd.maximize_window() elif browser == 'chrome': capabilities = webdriver.DesiredCapabilities.CHROME.copy() capabilities['timeouts'] = { 'implicit': timeout, 'pageLoad': timeout, 'script': timeout } capabilities['acceptSslCerts'] = True capabilities['acceptInsecureCerts'] = True wd = webdriver.Chrome(desired_capabilities=capabilities) wd.maximize_window() elif browser == 'ie': options = IeOptions() options.add_argument("--start-fullscreen") options.add_argument('--headless') wd = webdriver.Ie(options=options) else: print('Unsupported browser!') sys.exit(1) log_folder = request.config.getoption("--logfolder") logger = get_logger(log_folder, "webDriverLog") logged_driver = EventFiringWebDriver(wd, WdEventListener(logger)) yield logged_driver if browser == 'chrome': browser_logger = get_logger(log_folder, "chromeLog", "%(message)s") for l in logged_driver.get_log("browser"): browser_logger.info(l) logged_driver.quit()
## Looping over env variables import os for k, v in os.environ.items(): print("%s = %s" % (k, v)) ## Problems with speed using Internet Explorer from selenium.webdriver import IeOptions ieo = IeOptions() ieo.require_window_focus = True driver = webdriver.Ie("G:\z-BPA\IEDriver\IEDriverServer.exe", options=ieo)
def launch(self, desired_capabilities=None, options=None): from selenium.webdriver import DesiredCapabilities self._set_config() if self._automation_browser == CHROME and self._automation_local: self.setup_chromedriver() chrome_capabilities = DesiredCapabilities.CHROME.copy() if options is not None: chrome_capabilities.update(options.to_capabilities()) if desired_capabilities is not None: chrome_capabilities.update(desired_capabilities) else: if desired_capabilities is not None: chrome_capabilities.update(desired_capabilities) return webdriver.Chrome(desired_capabilities=chrome_capabilities) if self._automation_browser == GECKO and self._automation_local: self.setup_geckodriver() firefox_capabilities = DesiredCapabilities.FIREFOX.copy() if options is not None: firefox_capabilities.update(options.to_capabilities()) if desired_capabilities is not None: firefox_capabilities.update(desired_capabilities) else: if desired_capabilities is not None: firefox_capabilities.update(desired_capabilities) return webdriver.Firefox(desired_capabilities=firefox_capabilities, service_log_path=os.path.join(ROOT_DIR, LOG_DIR, f'{GECKODRIVER}{LOG}')) if self._automation_browser == EDGE: self.setup_edgedriver() from msedge.selenium_tools import Edge, EdgeOptions edge_capabilities = DesiredCapabilities.EDGE.copy() if options is not None: edge_capabilities.update(options.to_capabilities()) if desired_capabilities is not None: edge_capabilities.update(desired_capabilities) else: if desired_capabilities is not None: edge_capabilities.update(desired_capabilities) from msedge.selenium_tools import Edge, EdgeOptions edge_options = EdgeOptions() edge_options.use_chromium = True edge_options.set_capability('platform', 'MAC' if OS_NAME == 'MAC' else 'WINDOWS') edge_capabilities.update(edge_options.to_capabilities()) return Edge(desired_capabilities=edge_options.to_capabilities()) if self._automation_browser == IE: if OS_NAME == 'MAC': raise NotImplementedError('Cannot launch IE browser on Mac.') self.setup_iedriver() ie_capabilities = DesiredCapabilities.INTERNETEXPLORER.copy() if options is not None: ie_capabilities.update(options.to_capabilities()) if desired_capabilities is not None: ie_capabilities.update(desired_capabilities) else: if desired_capabilities is not None: ie_capabilities.update(desired_capabilities) from selenium.webdriver import IeOptions ie_options = IeOptions() ie_options.ignore_protected_mode_settings = True ie_options.ensure_clean_session = True ie_options.require_window_focus = True ie_options.ignore_zoom_level = True ie_capabilities.update(ie_options.to_capabilities()) return webdriver.Ie(desired_capabilities=ie_capabilities) if self._automation_browser == SAFARI: if OS_NAME == 'WIN': raise NotImplementedError('Cannot launch safari browser on Windows.') return webdriver.Safari(desired_capabilities=desired_capabilities) remote_capabilities = DesiredCapabilities.CHROME.copy() if self._automation_browser == CHROME \ else DesiredCapabilities.FIREFOX.copy() if options is not None: remote_capabilities.update(options.to_capabilities()) if desired_capabilities is not None: remote_capabilities.update(desired_capabilities) else: if desired_capabilities is not None: remote_capabilities.update(desired_capabilities) return webdriver.Remote(command_executor=self._automation_url, desired_capabilities=remote_capabilities)
def start(self): from selenium.webdriver import Ie, IeOptions options = IeOptions() api = Ie(options=options)
def generate_download_folder_capability_by_ie(self): options = IeOptions() options.add_experimental_option("prefs", self._prefs) return options