🐈⬛
ChromeのパスワードチェックがSeleniumの邪魔をする
概要
関連ありそうなところ変更してないのに、Seleniumのテストがコケて、確認してみたらChange your passwordというダイアログが出て、先に進めなくなっていた。

解決
ドライバー生成のところでPreferenceオプションに'profile.password_manager_leak_detection': falseを渡すとパスワードチェックをスルーできる様です。RailsのプロジェクトでCapybaraを使っていたのでコードは下記の様になります。
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome,
desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome(
chrome_options: {
args: %w(window-size=1680,1050),
w3c: false,
prefs: {
'profile.password_manager_leak_detection': false,
}
},
)
)
end
参考
selenium How to disable or close “Change your password” popup after loginあたりで検索するとprofile.password_manager_leak_detectionをfalseにすればどうにかできそうなことは出てくるのですが、言語が違って、オプションをどの様に生成すればいいのかわかりませんでした。
これはCapybara出てくるけど、生成方法が違うのであまり参考にならず。
Selenium::WebDriver::Remote::Capabilities.chromeはCapybaraではなくGoogleが提供するChromeDriverのライブラリの様で、そのドキュメントがこちら。
先ほどの他言語の解説ではprofile.password_manager_leak_detectionはPreferenceに渡してるので、ここでオプションのオブジェクトのリファレンスをみてprefsにHashで渡したら認識しました。
Discussion