【Python】Selenium:「Chromeは自動テストソフトウェアによって制御されています」を消す方法

時計 2021.02.05 / 時計

【Python】Selenium:「Chromeは自動テストソフトウェアによって制御されています」を消す方法

本記事ではPythonのSeleniumモジュールからChromeを操作・制御した際に表示される「Chromeは自動テストソフトウェアによって制御されています」を消す方法について解説していきます。

Pythonでスクレイピングやブラウザ操作を行い、データ収集を行っている方は非常に多くいらっしゃいます。
スクレイピングのためにPythonを勉強しているという方も多いのではないでしょうか。

PythonとSelenium、WebDriverを組み合わせることでブラウザの操作や制御を行えます。
対象のブラウザがChromeの場合、必ず「Chromeは自動テストソフトウェアによって制御されています」という表示がブラウザ上に出てきます。

Chromeは自動テストソフトウェアによって制御されています

本記事の目的はこのステータスをブラウザ上から消すことです。

実行環境

  • OS:Windows10
  • Google Chrome:88.0.4324.104(Official Build)
  • ChromeDriver:88.0.4324.96
  • Python:Python 3.7.6
  • Selenium:3.141.0

Seleniumについて

Pythonでブラウザを操作するにはSeleniumを使用するのが定番です。

静的なWebページからスクレイピングするのであればrequestsモジュールで事足りますが、動的なページ(Ajax、Javascript)であればSeleniumを使用してjavascriptを動かす必要が出てきます。

Seleniumの詳しい使い方は以下記事をご参照ください。

表示を消す方法

ChromeOptionに追加

SeleniumでChromeを自動操作する際に表示される「Chromeは自動テストソフトウェアによって制御されています」を消すには、ChromeOptionにexcludeSwitches: ['enable-automation']を追加することで表示がなくなります。

excludeSwitches: ['enable-automation']

Seleniumで上記オプションを追加するには以下のようにPythonスクリプトに記述します。

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ['enable-automation'])

driver = webdriver.Chrome(executable_path='chromedriver.exe', chrome_options=options)

url = "https://office54.net"
driver.get(url)

注意点

注意点としてはexcludeSwitchesには1つしか情報を加えられない、ということです。

どういうことかというと、EXE化したPythonスクリプトから「Getting Default Adapter failed」エラー表示をなくすためにexcludeSwitches: ['enable-logging']を追加したい場合は、今回の['enable-automation']は適応できないということです。

どちらの設定を有効にするかは、実行するプログラム内容によって変更してください。

まとめ

本記事「【Python】Selenium:「Chromeは自動テストソフトウェアによって制御されています」を消す方法」はいかがでしたか。

たった数行を追加するだけで、邪魔だったステータスバーを消すことができるので、ぜひ使ってみてください。