Skip to content

禁用Chrome 127的搜索引擎选择界面

问题描述

Chrome 127版本引入了强制用户选择默认搜索引擎的界面,当用户首次启动浏览器时会显示"选择搜索引擎"的提示页。这一改动导致使用Selenium自动化测试的脚本运行失败(尤其在使用ChromeDriver 127.0.6533.72时),因为自动化流程会被此界面中断报错。

该问题的核心表现为:

  • 自动化浏览器初始化过程中断
  • 测试脚本因无法定位后续页面元素而报错
  • 仅影响首次运行或清除用户数据后的场景

解决方案

通过在Chrome启动参数中添加 --disable-search-engine-choice-screen 标志可直接禁用该选择界面。以下是针对不同技术栈的实现方式:

Python(原生Selenium)

python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--disable-search-engine-choice-screen")  # 关闭搜索引擎选择界面

driver = webdriver.Chrome(options=chrome_options)

WebDriverIO / Protractor

javascript
capabilities: [  
  {  
    'browserName': 'chrome',  
    'goog:chromeOptions': {  
      args: ['--disable-search-engine-choice-screen'],  // 关键参数
    },  
  },  
],

Java(Selenium)

java
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-search-engine-choice-screen");  // 添加启动参数

WebDriver driver = new ChromeDriver(options);

原理说明

  1. --disable-search-engine-choice-screen 参数的作用
    Chrome 127新增的该参数专门用于绕过欧盟合规性要求的搜索引擎选择界面。添加后,浏览器会直接使用预设的默认搜索引擎(通常为Google)而不再显示选择界面。

  2. 兼容性要求
    必须保持ChromeDriver版本与Chrome浏览器的严格匹配(例如Chrome 127需对应ChromeDriver 127.x)。版本不匹配会导致参数失效。

注意事项

  1. 该参数不改变实际搜索引擎行为,仅跳过界面提示
  2. 测试环境中建议同时配合 --user-data-dir 参数以固定用户配置
  3. 欧盟地区用户可能需要额外处理合规性问题

通过以上方案,可解决因搜索引擎选择界面导致的自动化测试中断问题,确保脚本在Chrome 127+环境中稳定运行。