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

如何阻止Selenium Python中AdBlock扩展自动打开新标签页?

阻止Selenium中AdBlock扩展自动打开新标签页

我用以下代码给Chrome驱动加载AdBlock扩展,代码能正常运行且扩展加载成功,但每次启动都会自动打开AdBlock的欢迎新标签页,怎么阻止这个行为?

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

def navigate_to_url(url):
    options = Options()
    options.add_argument('start-maximized')
    options.add_extension('adblock.crx')
    options.add_experimental_option('detach', True)
    options.add_experimental_option('excludeSwitches', ['enable-logging'])

    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
    driver.get(url)
    return driver

if __name__ == '__main__':
    driver = navigate_to_url('https://www.google.com')
    print(driver.current_url)

解决方案

1. 使用已配置好的AdBlock扩展文件

AdBlock弹出欢迎页是首次加载的默认行为,你可以先在本地Chrome浏览器安装AdBlock,完成首次设置(关闭欢迎页提示、配置好偏好),再导出该扩展的crx文件替换当前的adblock.crx:

  • 打开Chrome的chrome://extensions/页面,开启「开发者模式」
  • 找到已安装的AdBlock,点击「打包扩展程序」
  • 选择扩展所在的本地文件夹(可通过扩展详情页的「加载已解压的扩展程序」路径定位)
  • 生成的crx文件就是跳过了欢迎页的版本

2. 通过Chrome偏好禁用首次运行弹窗

在ChromeOptions中添加用户偏好,强制关闭AdBlock的首次运行提示:

options = Options()
options.add_argument('start-maximized')
# 添加偏好设置,禁用AdBlock欢迎页
options.add_experimental_option("prefs", {
    "extensions.adblockplus.settings": {
        "show_first_run_page": False,
        "show_statsinicon": False
    }
})
options.add_extension('adblock.crx')
options.add_experimental_option('detach', True)
options.add_experimental_option('excludeSwitches', ['enable-logging'])

注:不同AdBlock版本的偏好键可能有差异,如果上述配置不生效,可通过Chrome的chrome://extensions/查看AdBlock的存储数据,找到对应的偏好键。

3. 加载扩展后自动关闭多余标签页

如果前两种方法不生效,可以在驱动初始化后,检查并关闭自动弹出的标签页:

def navigate_to_url(url):
    options = Options()
    options.add_argument('start-maximized')
    options.add_extension('adblock.crx')
    options.add_experimental_option('detach', True)
    options.add_experimental_option('excludeSwitches', ['enable-logging'])

    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
    # 短暂等待标签页加载
    driver.implicitly_wait(2)
    # 保留主标签页,关闭其余标签页
    main_window = driver.current_window_handle
    for window in driver.window_handles:
        if window != main_window:
            driver.switch_to.window(window)
            driver.close()
    driver.switch_to.window(main_window)
    driver.get(url)
    return driver

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:12:53