4

我需要以无头模式远程运行我的 selenium 测试用例。

目前,我在 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
4

1 回答 1

0

看看这是否有帮助。一个示例应用

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()

于 2020-07-07T17:07:25.217 回答