无头模式Selenium Python添加I don't care about cookies扩展报错求助
问题
在Selenium中添加「I don't care about cookies」扩展时,出现以下错误:
selenium.common.exceptions.WebDriverException: Message: unknown error: failed to wait for extension background page to load: chrome-extension://fihnjjcciajhdojfnbdddfaoknhalnja/_generated_background_page.html
代码实现如下:
self.service = Service(self.path) self.chrome_options = webdriver.ChromeOptions() self.chrome_options.add_extension("tools/I-don-t-care-about-cookies.crx") self.chrome_options.binary_location = os.environ.get("GOOGLE_CHROME_BIN") self.chrome_options.add_argument('--headless') self.chrome_options.add_argument('--disable-gpu') self.chrome_options.add_argument('--no-sandbox') self.driver = webdriver.Chrome(service=self.service,options=self.chrome_options)
解决思路与方案
- 验证扩展文件有效性:确认
I-don-t-care-about-cookies.crx文件未损坏,重新下载最新版本的CRX文件替换原文件后重试。 - 适配无头模式:旧版无头模式(
--headless)对部分扩展兼容性差,可改用Chrome新无头模式参数:
也可先移除self.chrome_options.add_argument('--headless=new')--headless和--disable-gpu,以正常窗口模式启动,确认扩展能否正常加载。 - 增加扩展加载等待:初始化Driver后,显式等待扩展后台页面加载完成:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By self.driver = webdriver.Chrome(service=self.service, options=self.chrome_options) # 等待10秒,确保扩展后台页面加载 WebDriverWait(self.driver, 10).until( EC.presence_of_element_located((By.TAG_NAME, "body")) ) - 匹配版本兼容性:检查Chrome浏览器版本与「I don't care about cookies」扩展版本是否匹配,避免因版本差异导致加载失败。
- 加载解压后的扩展目录:将CRX文件解压为文件夹,使用目录加载替代CRX文件,稳定性更高:
self.chrome_options.add_argument('--load-extension=tools/I-don-t-care-about-cookies-folder')
内容的提问来源于stack exchange,提问作者Luca ZH
相关产品推荐
相关产品推荐

