Skip to content

Chrome 127での検索エンジン選択画面によるSeleniumエラー解決法

問題

Chrome バージョン127への更新後、Seleniumによる自動テストスクリプトの実行でエラーが発生します。エラーの原因は、ブラウザ起動時に必ず表示される「デフォルト検索エンジンを選択」画面です。この画面が表示されることで、Seleniumによるブラウザ操作がブロックされ、スクリプトが正常に続行できなくなります。主な発生環境は:

  • Chrome バージョン127以上
  • ChromeDriver 127.0.6533.72以降
  • 新しいChromeプロファイルを使用する場合
  • テスト実行時にプロファイルデータがリセットされる設定

この問題は新しいChromeの機能「検索エンジン選択画面」が自動化フローと干渉するために発生します。

解決策

--disable-search-engine-choice-screen Chromeオプションを追加し、検索エンジン選択画面を無効化します。以下に言語/フレームワーク別の実装方法を示します:

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")  # 重要オプション
chrome_options.add_argument("--start-maximized")  # 任意オプション

driver = webdriver.Chrome(options=chrome_options)  # オプション適用
driver.get("https://example.com")  # 以降のテストコード

Webdriver.IO / Protractor での設定例

javascript
// wdio.conf.js 設定例
exports.config = {
  capabilities: [{
    browserName: 'chrome',
    'goog:chromeOptions': {
      args: [
        '--disable-search-engine-choice-screen'  // 選択画面を無効化
        // 他の必要なオプション
      ]
    }
  }],
  // その他の設定...
};

Java実装例

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

public class ChromeTest {
  public static void main(String[] args) {
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-search-engine-choice-screen");
    WebDriver driver = new ChromeDriver(options);
    driver.get("https://example.com");
    // 以降のテスト処理...
  }
}

補足説明

オプションの動作原理

--disable-search-engine-choice-screen フラグは:

  1. Chrome初期起動時の検索エンジン選択画面を無効化
  2. 既存設定(プロファイル内の検索エンジン設定)を継承
  3. 規制対応で追加されたEUユーザー機能を無効化

追加注意点

  1. プロファイル固定化:テスト安定化のためユーザーデータディレクトリを固定推奨
python
chrome_options.add_argument("--user-data-dir=/path/to/profile")
  1. ブラウザ更新対応:ChromeOptionsはバージョン毎に調整が必要
  2. 代替フラグ検証(将来的な変更に備えた対策):
    python
    chrome_options.add_argument("--no-default-search-provider-check")

検索エンジン選択動作の背景

Chrome 127での変更は、EUデジタルマーケティング法(DMA)準拠のため導入されました:

  • EU圏ユーザー向けの必須機能
  • 検索エンジン選択画面が初回起動時に強制表示
  • 自動テスト環境では予期せぬ中断を発生させる

問題再発防止策

  1. ドライバーバージョンチェックの徹底
python
assert driver.capabilities['browserVersion'].startswith('127'), "非対応バージョン"
  1. ブラウザオプション設定の集約管理:
python
# オプション管理モジュール
def get_chrome_options():
    options = Options()
    options.add_argument("--disable-search-engine-choice-screen")
    # 共通オプション追加
    return options

まとめ

Chromeバージョン127以降のSeleniumテストでは--disable-search-engine-choice-screenオプションの追加が必須です。導入後は以下の効果が期待できます:

  • 検索エンジン選択画面によるテスト中断の排除
  • EU規制対応機能と自動化の互換性確保
  • Chrome更新に伴うテスト不安定性の解消

上記コード例を適用し、Seleniumテストの継続的な安定動作を実現してください。