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

使用pytest+SeleniumBase运行测试报错:--variables参数冲突

解决argparse.ArgumentError: argument --variables: conflicting option string报错问题

这个报错的核心原因是SeleniumBase的BaseCase类自带argparse参数解析逻辑,你直接实例化测试类并调用方法的方式,和SeleniumBase的内置参数处理机制冲突了——--variables是SeleniumBase预设的命令行参数,重复注册就会触发这个错误。而单独用Selenium时没有这套参数逻辑,所以不会报错。

给你两个可行的解决办法:

方法一:遵循SeleniumBase标准运行流程

删掉代码里的if __name__ == "__main__"代码块,改用SeleniumBase支持的pytest命令行运行测试:

pytest 你的测试文件名.py -v

这种方式会让SeleniumBase正确处理内置参数,不会出现冲突。

方法二:改用SeleniumBase的Driver类混用功能

如果一定要同时用原生Selenium风格和SeleniumBase的工具方法,直接用SeleniumBase提供的Driver类替代原生webdriver.Chrome(),这样既避免参数冲突,又能调用SeleniumBase的截图、断言等方法:
修改后的代码示例:

from seleniumbase import Driver

def test_open_webpage():
    # 用SeleniumBase Driver替代原生Chrome驱动
    driver = Driver(browser="chrome")
    driver.get('https://test01.rubiscape.io/#/auth/login-user')
    # 使用SeleniumBase的断言方法,注意替换成页面实际标题
    driver.assert_true("目标页面实际标题" in driver.title)
    # 执行截图操作
    driver.check_window(name="Initial_Window")
    # 关闭驱动
    driver.quit()

if __name__ == "__main__":
    test_open_webpage()

另外提醒下:你原代码里断言的"Example Domain"和打开的页面不匹配,记得改成目标页面的实际标题,不然断言会失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:26:13