как передать безголовый режим firefox/chrome через командную строку в pytest

Мне нужно запускать мои тестовые примеры селена удаленно в безголовом режиме.

В настоящее время я работаю под командой py.test

py.test --driver remote --host selenium.host --port 4444 --capability browserName firefox --capability platform LINUX

А для режима без головы мне нужно справиться с этим в conftest.py файл

Но мне нужна эта опция в командной строке, вместо того, чтобы обрабатывать ее в conftest.py файл

@pytest.fixture
def chrome_options(chrome_options):
    chrome_options.add_argument('--headless')
    return chrome_options


@pytest.fixture
def firefox_options(firefox_options):
    firefox_options.add_argument('-headless')
    return firefox_options

1 ответ

Посмотрим, поможет ли это. Пример приложения

def pytest_addoption(parser):
    parser.addoption("--browser", action="store", default="firefox", help="Type in browser type")
    parser.addoption("--executor", action="store", default="standalone", help="For selenium grid.")
    parser.addoption("--url", action="store", default="http://the-internet.herokuapp.com", help="url")




@pytest.fixture(scope="function")
def open_browser(request):
    browser = request.config.getoption("--browser")
    executor = request.config.getoption("--executor")

    if executor == "local" or executor == "" or executor == "standalone":
        if browser == 'chrome':
            driver = webdriver.Chrome()
        else:
            driver = webdriver.Firefox()
    else:
        if executor == "remote":
            command_executor = 'http://localhost:4444/wd/hub'
        else:
            command_executor = 'http://' + executor + '/wd/hub'  ## Expecting IP and Port. Eg. 1.1.1.1:4444

        caps = {'browserName': os.getenv('BROWSER', browser)}
        driver = webdriver.Remote(
            command_executor=command_executor,
            desired_capabilities=caps)

    driver.implicitly_wait(10)
    driver.maximize_window()

    yield driver # Teardown
    driver.close()
    driver.quit()

Другие вопросы по тегам