def browser(request): browser_name = request.config.getoption("browser_name") browser = None if browser_name == "chrome": print("\nstart chrome browser for test..") browser = webdriver.Chrome() browser.set_window_size(1366, 800) elif browser_name == "firefox": print("\nstart firefox browser for test..") browser = webdriver.Firefox() browser.set_window_size(1366, 800) elif browser_name == "Ie": print("\nstart Ie browser for test..") browser = webdriver.Ie() browser.set_window_size(1366, 800) else: raise pytest.UsageError("--browser_name should be chrome or firefox") request.addfinalizer(browser.quit) print("\nquit browser..") return browser
def browser(request): browser_name = request.config.getoption('browser_name') user_language = request.config.getoption('language') browser = None if browser_name == 'chrome': print('\nstart chrome browser for test..') options = Options() options.add_experimental_option( 'prefs', {'intl.accept_languages': user_language}) browser = webdriver.Chrome(options=options) elif browser_name == 'firefox': print('\nstart firefox browser for test..') fp = webdriver.FirefoxProfile() fp.set_preference('intl.accept_languages', user_language) browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError('--browser_name should be chrome or firefox') yield browser print('\nquit browser..') browser.quit()
def prepare(self, home, config): root = home / self.name root.mkdir(exist_ok=True) mock_info = self._parse_mock_info( self.mock_data_fn(self.info, root, config)) available_file_names = {path.name for path in root.glob("*")} required_file_names = { resource.file_name for resource in self.dataset.resources(config) } missing_file_names = required_file_names - available_file_names if missing_file_names: raise pytest.UsageError( f"Dataset '{self.name}' requires the files {sequence_to_str(sorted(missing_file_names))} " f"for {config}, but they were not created by the mock data function." ) return mock_info
def browser(request): browser_name = request.config.getoption("browser_name") user_language = request.config.getoption("language") if browser_name == "chrome": options = Options() options.add_experimental_option( "prefs", {"intl.accept_languages": user_language}) print("\nstart chrome browser for test..") browser = webdriver.Chrome(options=options) elif browser_name == "firefox": fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", user_language) print("\nstart firefox browser for test..") browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError("Браузер <browser_name> пока не реализован") yield browser time.sleep(10) print("\nquit browser..") browser.quit()
def driver(request): user_language = request.config.getoption("language") browser_name = request.config.getoption("browser_name") if browser_name == "chrome": print("\nstart chrome browser for test..") options = Options() options.add_experimental_option( 'prefs', {'intl.accept_languages': user_language}) #driver = webdriver.Chrome('/usr/local/bin/chromedriver') driver = webdriver.Chrome(ChromeDriverManager().install()) elif browser_name == "firefox": print("\nstart firefox browser for test..") #driver = webdriver.Firefox() driver = webdriver.Firefox( executable_path=GeckoDriverManager().install()) else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield driver print("\nquit browser..") driver.quit()
def browser(request): browser_name = request.config.getoption('browser_name') user_language = request.config.getoption('language') if browser_name == 'chrome': print("\nstart chrome browser") options = Options() options.add_experimental_option( 'prefs', {'intl.accept_languages': user_language}) browser = webdriver.Chrome(options=options) elif browser_name == "firefox": print("\nstart firefox browser") fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", user_language) browser = webdriver.Firefox(executable_path="D:\\geckodriver.exe", firefox_profile=fp) else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser print("\nquit browser..") browser.quit()
def browser(request): browser_name = request.config.getoption("browser") user_language = request.config.getoption("language") options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': user_language}) browser = None if browser_name == "Chrome": print("\nstart Chrome browser for test..") browser = webdriver.Chrome(options=options) browser.implicitly_wait(10) elif browser_name == "Firefox": print("\nstart Firefox browser for test..") browser = webdriver.Firefox(options=options) browser.implicitly_wait(10) else: raise pytest.UsageError("--browser should be Chrome or Firefox") yield browser print("\nquit browser..") browser.quit()
def browser(request): browser_name = request.config.getoption("browser_name") user_language = request.config.getoption("language") fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", user_language) browser = None if browser_name == "chrome": print("\nstart chrome browser for test..") browser = webdriver.Chrome() elif browser_name == "firefox": print("\nstart firefox browser for test..") browser = webdriver.Firefox( executable_path='C:/TEMP/DYAKOVA/Page-Object/geckodriver.exe') else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser print("\nquit browser..") browser.quit()
def browser(request): browser_name = request.config.getoption("browser_name") language = request.config.getoption("language") if browser_name not in BROWSERS_LIST: raise pytest.UsageError("--browser_name should be chrome or firefox") if browser_name == "chrome": options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': language}) browser = webdriver.Chrome(options=options) elif browser_name == "firefox": profile = webdriver.FirefoxProfile() profile.set_preference("intl.accept_languages", language) browser = webdriver.Firefox(firefox_profile=profile) browser.implicitly_wait(10) yield browser browser.quit()
def work(self) -> None: if self.project_id: val = { "project_id": self.project_id, "name": self._format_string(self.testrun_name), "description": self._format_string(self.testrun_description), } if self.suite_id: val["suite_id"] = self.suite_id if self.milestone_id: val["milestone_id"] = self.milestone_id if self.test_run: val["case_ids"] = self.get_case_ids(self.test_run) val["include_all"] = False else: val["include_all"] = True response = self.api.runs.add_run(**val) self.test_run = response["id"] elif not self.test_run: raise pytest.UsageError("No args project_id or test_run")
def browser(request): browser_name = request.config.getoption("browser_name").lower() user_language = request.config.getoption("language").lower() if browser_name == "chrome": options = Options() options.add_experimental_option( 'prefs', {'intl.accept_languages': user_language}) browser = webdriver.Chrome(options=options) elif browser_name == "firefox": firefox_profile = webdriver.FirefoxProfile() firefox_profile.set_preference("intl.accept_languages", user_language) browser = webdriver.Firefox(firefox_profile=firefox_profile) else: raise pytest.UsageError("--browser_name should be chrome or firefox") print(f"\nStart {browser_name.capitalize()} browser for test...") yield browser print("\nQuit browser...") browser.quit()
def pytest_runtestloop(self, session): yield compat_session = compat.SessionWrapper(session) self.failed = bool(compat_session.testsfailed) if self.cov_controller is not None: self.cov_controller.finish() if not self._is_slave(session) and self._should_report(): try: self.cov_total = self.cov_controller.summary(self.cov_report) except CoverageException as exc: raise pytest.UsageError( 'Failed to generate report: %s\n' % exc ) assert self.cov_total is not None, 'Test coverage should never be `None`' if self._failed_cov_total(): # make sure we get the EXIT_TESTSFAILED exit code compat_session.testsfailed += 1
def browser(request): language = request.config.getoption("language") options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': language}) browser_name = request.config.getoption("browser") browser = None if browser_name == "Chrome": browser = webdriver.Chrome(options=options) elif browser_name == "Firefox": fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", language) browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError("--browser name should be Chrome or Firefox") browser.maximize_window() browser.implicitly_wait(5) yield browser # browser.save_screenshot(f'Screenshots/Screenshot-{datetime.now().strftime("%Y-%m-%d_%H-%M-%S")}.png') browser.quit()
def salt_factories(tempdir, event_listener, stats_processes, salt_factories_config, _salt_factories_config): if not isinstance(salt_factories_config, dict): raise pytest.UsageError( "The 'salt_factories_config' fixture MUST return a dictionary") if salt_factories_config: log.debug("Salt Factories Manager Default Config:\n%s", pprint.pformat(_salt_factories_config)) log.debug("Salt Factories Manager User Config:\n%s", pprint.pformat(salt_factories_config)) factories_config = _salt_factories_config.copy() factories_config.update(salt_factories_config) log.debug( "Instantiating the Salt Factories Manager with the following keyword arguments:\n%s", pprint.pformat(factories_config), ) return FactoriesManager(root_dir=tempdir, stats_processes=stats_processes, event_listener=event_listener, **factories_config)
def browser(request): language = request.config.getoption("language") options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': language}) browser_name = request.config.getoption("browser_name") browser = None if browser_name == "chrome": print("\nstart chrome browser for test..") browser = webdriver.Chrome(options=options) elif browser_name == "firefox": print("\nstart firefox browser for test..") browser = webdriver.Firefox(options=options) else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser print("\nquit browser..") browser.quit()
def browser(request): browser_name = request.config.getoption("browser_name") user_language = request.config.getoption("language") browser = None if browser_name == "chrome": options = Options() options.add_experimental_option( 'prefs', {'intl.accept_languages': user_language}) print("\nstart chrome browser for test..") browser = webdriver.Chrome(options=options) elif browser_name == "firefox": fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_language", user_language) print("\nstart firefox browser for test..") browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser print("\nquit browser..") browser.quit()
def browser(request): language = request.config.getoption('language') browser_name = request.config.getoption('browser_name') if browser_name == 'chrome': options = Options() print('\nStart CHROME browser for test..') options.add_experimental_option('prefs', {'intl.accept_languages': language}) browser = webdriver.Chrome(options=options) elif browser_name == 'firefox': fp = webdriver.FirefoxProfile() fp.set_preference('intl.accept_languages', language) print("\nStart FIREFOX browser for test..") browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser print("\nQuit browser..")
def watch_dir( rel_path, root=PROJECT_ROOT, error_on_diff=False, remove_diff=None, honor_gitignore=True, ): abs_path = _rel_to_abs_path(rel_path, root) if remove_diff is None: remove_diff = not error_on_diff old_dirs, old_files = _find_dirs_and_files(abs_path, honor_gitignore=honor_gitignore) try: yield finally: new_dirs, new_files = _find_dirs_and_files( abs_path, honor_gitignore=honor_gitignore) diff_dirs = new_dirs - old_dirs diff_files = new_files - old_files if not (diff_dirs or diff_files): return if remove_diff: for dir in diff_dirs: dir_util.remove_tree(dir) for file in diff_files: try: os.remove(file) except FileNotFoundError: # file might have been already removed with dir removal pass if error_on_diff: msg = "The following directories and files were added:\n\n" "\n".join( itertools.chain(diff_dirs, diff_files)) raise pytest.UsageError(msg)
def pytest_sessionstart(self, session): """initialization and sanity checking""" if session.config.pluginmanager.hasplugin('dsession'): msg = 'Plugin incremental is not compatible with plugin xdist.' raise pytest.UsageError(msg) opts = session.config.option self.list_outdated = opts.list_outdated self.list_dependencies = opts.list_dependencies self.graph_dependencies = opts.graph_dependencies self.run = not any((self.list_outdated, self.list_dependencies, self.graph_dependencies)) # pkg_folders to watch can never be empty, if not specified use CWD pkg_folders = [ os.path.abspath(p) for p in session.config.option.watch_path ] if not pkg_folders: pkg_folders = [os.getcwd()] self.control = IncrementalControl(pkg_folders)
def browser(request): browser_name = request.config.getoption("browser_name") user_language = request.config.getoption("language") if browser_name == "chrome": options = Options() # скрывать браузер при запуске тестов - 2 след строки # options.add_argument('headless') # options.add_argument('window-size=1920x935') options.add_experimental_option('prefs', {'intl.accept_languages': user_language}) print("\nstart chrome browser for test..") browser = webdriver.Chrome(options=options) elif browser_name == "firefox": fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", user_language) print("\nstart firefox browser for test..") browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser print("\nquit browser..") browser.quit()
def get_log_level_for_setting(config: Config, *setting_names: str) -> Optional[int]: for setting_name in setting_names: log_level = config.getoption(setting_name) if log_level is None: log_level = config.getini(setting_name) if log_level: break else: return None if isinstance(log_level, str): log_level = log_level.upper() try: return int(getattr(logging, log_level, log_level)) except ValueError: # Python logging does not recognise this as a logging level raise pytest.UsageError( "'{}' is not recognized as a logging level name for " "'{}'. Please consider passing the " "logging level num instead.".format(log_level, setting_name))
def browser(request): browser_name = request.config.getoption("browser_name") browser = None user_language = request.config.getoption("lang") if browser_name == 'chrome': options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': user_language}) browser = webdriver.Chrome(options=options) elif browser_name == 'firefox': fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", user_language) browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError("ожидается параметр --browser chrome или firefox") browser.implicitly_wait(3) # ожидание 3 секунды, для случаев задержек в работе сайта yield browser time.sleep(3) browser.quit()
def browser(request): language = request.config.getoption("language") if language not in ["ru", "en-gb", "es", "fr"]: raise pytest.UsageError("test run should contain language for test") options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': language}) print("\nopen browser for test..") result = webdriver.Chrome(options=options) result.maximize_window() result.implicitly_wait(5) result.user_language = language yield result print("\nquit browser..") result.quit()
def pytest_generate_tests(metafunc): tests_with_artifacts = metafunc.config.getoption('artifacts') if len(tests_with_artifacts) > 1: raise pytest.UsageError( '--export-artifacts-from must be used only once. It should contain a CSV string of test names that can manage artifacts.' ) if len(tests_with_artifacts) == 1: tests_with_artifacts = tests_with_artifacts[0].split(',') test_function_name = metafunc.function.__name__ if "artifact" in metafunc.fixturenames: if test_function_name in tests_with_artifacts: metafunc.parametrize("artifact", [ '/tmp/{function}.artifact'.format( function=test_function_name) ]) else: metafunc.parametrize("artifact", [None]) else: if "artifact" in metafunc.fixturenames: metafunc.parametrize("artifact", [None])
def browser(request): user_language = request.config.getoption("language") browser_name = request.config.getoption("browser_name") if browser_name == "chrome": options = Options() #options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" options.add_experimental_option( 'prefs', {'intl.accept_languages': user_language}) print(f"\nstart chrome browser with {user_language} language") browser = webdriver.Chrome(options=options) #browser = webdriver.Chrome(options=options, executable_path="C:/chromedriver/chromedriver.exe", ) elif browser_name == "firefox": print("\nstart firefox browser for test..") fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", user_language) browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser browser.quit()
def browser(browser_name, language): browser = None if browser_name == "chrome": options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': language}) browser = webdriver.Chrome(options=options) browser.maximize_window() elif browser_name == "firefox": fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", language) browser = webdriver.Firefox(firefox_profile=fp) browser.maximize_window() else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser # получаем переменную с текущей датой и временем в формате ГГГГ-ММ-ДД_ЧЧ-ММ-СС now = datetime.now().strftime('%Y-%m-%d_%H-%M-%S') # делаем скриншот с помощью команды Selenium'а и сохраняем его с именем "screenshot-ГГГГ-ММ-ДД_ЧЧ-ММ-СС": # browser.save_screenshot('screenshot-%s.png' % now) browser.quit()
def browser(request): browser_name = request.config.getoption('browser_name') user_language = request.config.getoption('language') browser = None # прописываем возможность выбора языка для браузеров Chrome и Firefox # Chrome options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': user_language}) # Firefox fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", user_language) # Указываем условия запуска браузеров if browser_name == "chrome": browser = webdriver.Chrome(options=options) elif browser_name == "firefox": browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser browser.quit()
def browser(request): browser_name = request.config.getoption('browser_name') browser_language = request.config.getoption('language') if browser_name == 'chrome': options = Options() options.add_experimental_option( 'prefs', {'intl.accept_languages': browser_language}) browser = webdriver.Chrome(options=options) elif browser_name == 'firefox': fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", browser_language) browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError('--browser_name should be chrome or firefox') yield browser browser.quit()
def browser(request): # создаем функцию для передачи различных языков интерфейса через командную строку, # а также для возможности открывать тесты в разных браузерах # получаем из командной строки параметры для запуска browser_name и language browser_name = request.config.getoption("browser_name") language = request.config.getoption("language") if browser_name == "chrome" or None: print("\nstart chrome browser for test..") options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': language}) browser = webdriver.Chrome(options=options) elif browser_name == "firefox": print("\nstart firefox browser for test..") fp = webdriver.FirefoxProfile() fp.set_preference("intl.accept_languages", language) browser = webdriver.Firefox(firefox_profile=fp) else: raise pytest.UsageError("--browser_name should be chrome or firefox") yield browser print("\nquit browser..") browser.quit()
def selenium(request): """Returns a WebDriver instance based on options and capabilities""" driver_type = request.config.getoption('driver') if driver_type is None: raise pytest.UsageError('--driver must be specified') driver_fixture = '{0}_driver'.format(driver_type.lower()) driver = request.getfuncargvalue(driver_fixture) event_listener = request.config.getoption('event_listener') if event_listener is not None: # Import the specified event listener and wrap the driver instance mod_name, class_name = event_listener.rsplit('.', 1) mod = __import__(mod_name, fromlist=[class_name]) event_listener = getattr(mod, class_name) if not isinstance(driver, EventFiringWebDriver): driver = EventFiringWebDriver(driver, event_listener()) request.node._driver = driver request.addfinalizer(driver.quit) return driver