Selenium:我想选择在命令提示符中调用哪个浏览器

Selenium: I want to choose which browser to use with invocation in Command Prompt

目前,我有一个名为 testcase.ini 的 .ini 文件,它看起来像这样:

[TEST]
DRIVER_PATH = C:\Python\
BROWSER = CHROME
; BROWSER = EDGE
; BROWSER = FIREFOX
CHROME_PATH = C:\Program Files\Google\Chrome\Application\chrome.exe
; EDGE_PATH = C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
; FIREFOX_PATH = C:\Program Files\Mozilla Firefox\firefox.exe

为了 运行 我的自动化测试,我在我的测试计划文件夹中打开命令提示符并输入如下命令:

python TestPlan_LoginTest.py

我希望能够在 运行 进行自动化测试时选择浏览器,而不是进入测试用例配置文件并注释掉我不希望使用的浏览器在命令提示符中调用测试,即像这样的东西:

python TestPlan_LoginTest.py Firefox

python TestPlan_LoginTest.py Edge

如果我不在调用中包含浏览器,则默认为 Chrome。

unittest 可以吗?我需要在何处进行哪些更改?

如果您使用的是名为 SeleniumBasepytest 插件,您可以从命令行设置浏览器。 (如果不指定,默认为“chrome”。)示例:

pytest test_demo_site.py --edge

pytest my_first_test.py --firefox

或者如果您更喜欢使用自己的框架,您可以在 SeleniumBase 中找到设置 pytest 命令行选项的必要代码:pytest_plugin.py

link 向您展示了如何使用 pytest_addoption(parser): 以及代码,例如:

    parser.addoption(
        "--edge",
        action="store_true",
        dest="use_edge",
        default=False""",
    )

它允许您自定义用于测试的命令行选项。