WebDriver初始化报错:TypeError: WebDriver.__init__()参数options重复赋值
解决TypeError: WebDriver.init() got multiple values for argument 'options'
问题原因
你写的代码browser = webdriver.Chrome(CHROME_DIR, options=options, desired_capabilities=capabilities)里,CHROME_DIR(Chrome驱动路径)被当成了第一个位置参数传递,但在新版Selenium(尤其是4.x+版本)中,webdriver.Chrome的第一个位置参数已经从executable_path改为options,这就导致你既通过位置传了一个值给options,又通过关键字options=options传了一次,触发重复参数报错。
修复方案
分两种情况处理:
- 如果你的Selenium版本是4.x及以上,推荐使用
Service类指定驱动路径:from selenium.webdriver.chrome.service import Service service = Service(executable_path=CHROME_DIR) browser = webdriver.Chrome(service=service, options=options, desired_capabilities=capabilities) - 若你坚持使用旧版写法(仅适用于Selenium 3.x及更早版本),需要显式指定
executable_path参数名:browser = webdriver.Chrome(executable_path=CHROME_DIR, options=options, desired_capabilities=capabilities)
额外提示:desired_capabilities在新版Selenium中已逐步被options替代,你可以把相关配置直接添加到options对象里,示例:
options.add_argument("--some-argument") # 替代desired_capabilities的部分配置 options.set_capability("capability_name", "value")
内容的提问来源于stack exchange,提问作者pedro larrondo
相关产品推荐
相关产品推荐

