You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行pytest文件时遇报错:无法识别--browser chrome参数

解决pytest无法识别--browser自定义参数的问题

错误信息

ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --browser chrome
inifile: None
rootdir: C:\Users\Prabhakar\PycharmProjects\nopecommerceApp

你的代码

import pytest
from selenium import webdriver
@pytest.fixture()
def setUp(browser):
 global driver
 if browser == 'chrome':
    driver = webdriver.Chrome()
    print("***** Launching chrome browser ******")
elif browser == 'firefox':
    driver = webdriver.Firefox()
    print("***** Launching Firefox browser ******")
return driver
def pytest_addoption(parser):
   parser.addoption('--browser')
@pytest.fixture()
def browser(request):
  return request.config.getoption('--browser')

问题原因

你把pytest的钩子函数pytest_addoption写在了普通测试文件里,pytest只会自动加载项目根目录下的conftest.py文件中的钩子函数,所以无法识别你定义的--browser参数。

解决步骤

  1. 在项目根目录(即错误信息里的rootdir路径)创建一个conftest.py文件
  2. 将以下代码单独放到conftest.py中:
import pytest

def pytest_addoption(parser):
    # 加上help提示,方便后续使用
    parser.addoption('--browser', help="指定浏览器类型:chrome 或 firefox")

@pytest.fixture()
def browser(request):
    return request.config.getoption('--browser')
  1. 原测试文件中只保留setUp fixture和测试相关代码即可:
import pytest
from selenium import webdriver

@pytest.fixture()
def setUp(browser):
    global driver
    if browser == 'chrome':
        driver = webdriver.Chrome()
        print("***** Launching chrome browser ******")
    elif browser == 'firefox':
        driver = webdriver.Firefox()
        print("***** Launching Firefox browser ******")
    return driver
  1. 重新运行pytest命令,比如:
pytest --browser chrome

额外优化

如果希望不指定--browser参数时默认使用chrome,可以修改conftest.py中的pytest_addoption,添加default参数:

parser.addoption('--browser', default='chrome', help="指定浏览器类型:chrome 或 firefox")

内容的提问来源于stack exchange,提问作者The Entertainment

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:55:24