【Python】Selenium:Chromeの「パスワードを保存しますか」を表示させない方法
2021.03.24 /
本記事では、PythonのSeleniumによるChromeブラウザの自動操作で、ログイン後に表示される「パスワードを保存しますか」のポップアップを表示させない方法について解説していきます。
SeleniumでChromeブラウザを自動操作していると以下のエラーが発生することがあります。
ElementClickInterceptedException: element click intercepted
このエラーが発生する原因については以下記事をご参照ください。
【Python】Selenium:ElementClickInterceptedExceptionエラーの原因と解決方法
このエラー原因の一つに、Chromeのパスワード保存のポップアップがあります。
パスワード保存のポップアップを非表示にして、エラーが発生しないようにする方法を見ていきましょう。
本記事を通して以下の知識を学べます。
- ElementClickInterceptedExceptionエラーについて
- Chromeのパスワード保存ポップアップについて
- パスワード保存機能をSeleniumでOFFにする方法
SeleniumによるChromeの自動操作
エラーが発生
PythonのSeleniumでChromeを自動操作するアプリを走らせていると、以下のエラーが発生し、アプリが途中でストップしてしまいました。
ElementClickInterceptedException: element click intercepted
このエラーの発生タイミングとしては、WebElementオブジェクトに対してclick()メソッドを使ってクリック操作をするときでした。
element.click()
エラー原因
このエラーが発生する原因としては、以下2つの原因が考えられます。
- 対象要素が画面外にある場合
- 対象要素が別の要素で隠れてしまっている場合
今回ElementClickInterceptedExceptionエラーが発生したのは、2番目の原因です。
Chromeブラウザによるポップアップ表示「パスワードを保存しますか」によって、クリックしたい要素が隠れてしまっているのです。
Chromeブラウザについて
パスワード保存機能
いろいろなサイトのログイン情報(ID、パスワード)を管理することは非常に大変ですし、毎回ログインのたびに入力するのもめんどくさいですよね。
Chromeでは様々なサイトのログイン情報(ID、パスワード)を保存しておく機能があります。
ログインが必要なサイトでログインを行うと、次のようなポップアップが表示します。
パスワード保存機能をOFFにする方法
このChromeに備わっているパスワード保存機能をOFFにする方法を以下に記します。
- Chromeの右上「…」をクリックし、「設定」を選択する
- 設定画面から「自動入力」内の「パスワード」を選択する
- 「パスワードを保存できるようにする」をOFFにする
上記の方法でChromeのパスワード保存をOFFにすることができます。
Selenium:Chromeからポップアップを非表示にする方法
Chrome側でOFFにしても表示する
上記で説明している方法でパスワード保存機能をOFFにすれば、SeleniumでChromeを操作したときにポップアップは表示しなくなると思いますよね。
実はChrome側でパスワード保存をOFFにしていても、SeleniumでChromeを起動するとONになって起動してしまうのです。
これは私の予想ですが、Seleniumだとデフォルト設定の状態でChromeは起動されるのではないかと思っています。
webdriverのオプションで非表示に設定する
それではどうやってパスワード保存のポップアップを非常時にできるのか。
それはSeleniumで使用するwebdriverのオプションで、パスワード保存機能をOFFにすることで実現することができます。
以下のようにwebdriverにadd_experimental_option()メソッドで追加することで、パスワード保存機能をOFFにできます。
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {"credentials_enable_service", False}
prefs = {"profile.password_manager_enabled" : False}
options.add_experimental_option("prefs", prefs)
chromedriver = 'chromedriver.exe'
driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=options)
まとめ
本記事「【Python】Selenium:Chromeの「パスワードを保存しますか」を表示させない方法」はいかがでしたか。
Chromeのポップアップ「パスワードを保存しますか」がSeleniumのクリック操作で邪魔になることは滅多にありませんが、消しておくに越したことはないです。
ぜひSeleniumでChrome操作する際は、このオプションを追加しておくことをお勧めします。