Python Seleniumwire如何正确传递启动参数实现无头模式与隐藏USB报错
配置错误原因
你当前的传参方式不符合Seleniumwire的参数规则:Seleniumwire的配置字典仅用于识别代理相关配置,浏览器启动参数、实验性选项需要通过独立的ChromeOptions对象定义,再传入浏览器初始化方法,因此你之前写在字典里的无头参数、日志屏蔽参数都不会被读取生效。
正确配置代码
from selenium.webdriver import ChromeOptions from seleniumwire import webdriver # 1. 定义浏览器启动配置 chrome_options = ChromeOptions() # 启用无头模式(新版Chrome推荐使用--headless=new参数,兼容性更好) chrome_options.add_argument("--headless=new") # 屏蔽控制台日志输出,解决USB、蓝牙报错打印问题 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 额外禁用USB、蓝牙扫描,从根源避免生成对应报错 chrome_options.add_argument("--disable-usb-discovery") chrome_options.add_argument("--disable-bluetooth") # 2. 定义Seleniumwire专属代理配置 sw_options = { 'proxy': { 'http': f'http://{proxy_user}:{proxy_pass}@{proxy_url}:{proxy_port}', 'https': f'https://{proxy_user}:{proxy_pass}@{proxy_url}:{proxy_port}', 'no_proxy': 'localhost,127.0.0.1' } } # 3. 初始化浏览器时分别传入两类配置 driver = webdriver.Chrome( options=chrome_options, seleniumwire_options=sw_options )
版本兼容说明
如果使用的是112版本以下的旧版Chrome,可以把--headless=new替换为--headless=chrome,即可正常实现无头效果。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

