Python Selenium传入Options参数时无法启动Chrome驱动的问题
Selenium Chrome自动化参数问题排查与解决
核心问题分析
- Options类导入错误:你代码里导入的是
selenium.webdriver.edge.options.Options,这是Edge浏览器的配置类,传给Chrome驱动必然出现不兼容——要么错误启动Edge,要么抛出SessionNotCreatedException: 会话未创建:未找到匹配的功能报错。 - Options对象未初始化:代码直接调用
optionss.add_argument,但没有先创建Options实例,运行时会触发未定义对象的错误。 - executable_path参数问题:手动指定驱动路径时崩溃,大概率是ChromeDriver版本与Chrome浏览器版本不匹配,或者路径格式书写错误。
解决方案步骤
1. 导入正确的Chrome Options类
替换Edge的Options导入为Chrome专属的配置类:
from selenium.webdriver.chrome.options import Options
2. 初始化Options对象
在添加参数前,必须先创建Options实例:
optionss = Options()
3. 合理处理executable_path参数(Selenium 4+)
Selenium 4及以上版本会自动管理ChromeDriver,无需手动指定executable_path。如果必须手动指定,需保证驱动版本与Chrome版本完全一致,路径使用原始字符串或转义符:
# 仅当自动管理失效时使用示例 driver = webdriver.Chrome(executable_path=r"C:\path\to\chromedriver.exe", options=optionss)
修正后的完整代码
from selenium import webdriver from selenium.webdriver.chrome.options import Options url = "https://example.site.com" # 初始化Chrome配置对象 optionss = Options() optionss.add_argument("--start-maximized") optionss.add_argument("--disable-popup-blocking") optionss.add_argument("--ignore-certificate-errors") # 配置下载偏好 prefs = { "download.default_directory": r"C:\example\dir", "download.prompt_for_download": False, "safebrowsing.enabled": False } optionss.add_experimental_option("prefs", prefs) # 启动Chrome并访问目标页面 driver = webdriver.Chrome(options=optionss) driver.get(url)
额外注意事项
- 版本匹配:Chrome浏览器主版本号必须与ChromeDriver主版本号一致(比如Chrome 120对应ChromeDriver 120.x)。
- 下载目录:确保设置的下载文件夹已存在,否则可能导致文件下载失败。
- Selenium版本:建议使用最新稳定版Selenium,避免旧版本的兼容性Bug。
内容的提问来源于stack exchange,提问作者NicolasSurfer
相关产品推荐
相关产品推荐

