禁用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);
原理说明
--disable-search-engine-choice-screen
参数的作用
Chrome 127新增的该参数专门用于绕过欧盟合规性要求的搜索引擎选择界面。添加后,浏览器会直接使用预设的默认搜索引擎(通常为Google)而不再显示选择界面。兼容性要求
必须保持ChromeDriver版本与Chrome浏览器的严格匹配(例如Chrome 127需对应ChromeDriver 127.x)。版本不匹配会导致参数失效。
注意事项
- 该参数不改变实际搜索引擎行为,仅跳过界面提示
- 测试环境中建议同时配合
--user-data-dir
参数以固定用户配置 - 欧盟地区用户可能需要额外处理合规性问题
通过以上方案,可解决因搜索引擎选择界面导致的自动化测试中断问题,确保脚本在Chrome 127+环境中稳定运行。