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

如何用Capybara/Selenium/Chrome跳过Chrome搜索引擎选择界面

解决Capybara启动Chrome时的「选择搜索引擎」弹窗问题

这个弹窗是Chrome首次运行引导流程导致的,会干扰自动化测试正常执行,以下是两种可靠的解决方法:

方法一:用Chrome命令行参数跳过首次运行引导

直接通过启动参数禁用首次运行向导和默认浏览器检查,从根源阻止弹窗出现:

Capybara.register_driver :chrome do |app|
  options = Selenium::WebDriver::Chrome::Options.new
  # 禁用首次运行引导流程
  options.add_argument('--no-first-run')
  # 跳过默认浏览器检测
  options.add_argument('--no-default-browser-check')
  
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end

Capybara.default_driver = :chrome
Capybara.javascript_driver = :chrome

方法二:预配置默认搜索引擎偏好

如果需要明确指定默认搜索引擎(比如强制使用Google),可以通过Chrome偏好设置直接配置,弹窗就不会触发:

Capybara.register_driver :chrome do |app|
  options = Selenium::WebDriver::Chrome::Options.new
  
  # 配置默认搜索引擎为Google
  options.add_preference(
    'default_search_provider',
    {
      'enabled' => true,
      'name' => 'Google',
      'keyword' => 'google.com',
      'search_url' => 'https://www.google.com/search?q={searchTerms}',
      'suggest_url' => 'https://www.google.com/complete/search?client=chrome&q={searchTerms}'
    }
  )
  
  # 搭配首次运行参数效果更稳定
  options.add_argument('--no-first-run')
  options.add_argument('--no-default-browser-check')

  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end

Capybara.default_driver = :chrome
Capybara.javascript_driver = :chrome

注意事项

  • 确保ChromeDriver版本与Chrome浏览器版本兼容,避免因版本不匹配导致偏好设置不生效。
  • 如果使用无头模式(--headless=new),部分引导流程可能自动跳过,但添加上述参数能确保在所有模式下稳定运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:37:32