首页 > 解决方案 > Chromedriver 测试在本地和 CI CD env python 上工作

问题描述

我所拥有的:Win 环境中的 CURRENT_BROWSER=chrome

def before_scenario(context, scenario):
    use_fixture(browser, context)


def after_scenario(context, scenario):
    context.cache.clear()
    context.driver.quit()


@fixture
def browser(context):
    browser_type = os.getenv('CURRENT_BROWSER', 'chrome')
    if browser_type is None:
        raise Exception(f"Unable to identify test browser which is {browser_type}")
    if browser_type == 'chrome':
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument('--headless')
        # chrome_options.add_argument('--incognito')
        context.driver = webdriver.Chrome(desired_capabilities=chrome_options.to_capabilities())
    if browser_type == 'firefox':
        pass

    yield context.driver

我需要的是:答案如何处理 CI CD(azureDevops)上的 chromedriver 我是否也应该将类似于 Browser 的 ENV 变量放入 PATH 并在 CI CD 上执行相同操作,或者有不同的方法来处理 chrome 驱动程序。我需要上面的代码将在本地和 CI CD 上工作,而我以前从未这样做过。在本地我使用上面的代码 + chromedriver.exe 添加到项目结构中

标签: pythonazure-devops

解决方案


如果您使用的是Microsoft 托管代理:或windows-latest,则 Chrome 驱动程序 87.0.4280.88 已安装。windows-2019vs2017-win2016

如果您想使用其他版本的 Chrome 驱动程序,您可以使用 npm 下载它:

- script: npm install chromedriver --chromedriver_version=LATEST

单击此文档以获取详细信息。

如果您使用的是自托管代理,并且该代理位于已下载 Chrome 驱动程序并配置 PATH 的计算机上,则您可以像在自己的计算机上工作一样使用 Chrome 驱动程序。


推荐阅读