こんにちは、カメ助(@kamesuke_blog)です。
PythonでSeleniumを実行すると、標準の設定では ChromeDriver のコンソール(黒い画面)が表示されます。
プログラムが動くたびにコンソールが表示されると邪魔ですよね。
邪魔なコンソール画面を非表示にできんの?
ということで、Selenium実行時のコンソールを非表示にする方法について調べたので共有します。
この記事はこんな人にオススメ
・Selenium実行時のコンソールを非表示にしたい
Seleniumでコンソールを非表示にしたい方は、本記事が参考になれば嬉しいです。
実行環境
- OS:Windows10
- 言語:Python3.7.5
- ツール:Selenium
- エディタ:VS Code
Seleniumのコンソールを非表示にする方法
コンソールを非表示にするには、PythonフォルダーのLib\site-packages\selenium\webdriver\common\services.py のSeleniumの設定ファイルを編集します。
私の環境では、「C:\Users\AppData\Local\Programs\Python\Python37\Lib\site-packages\selenium\webdriver\common\services.py」のファイルを編集しました。
Seleniumの設定ファイルを編集して、コンソールを非表示にしています。
変更内容
- 「from subprocess import CREATE_NO_WINDOW」 を追加
- Start()関数に「creationflags = CREATE_NO_WINDOW」を追加
変更内容について簡単に解説します。
①では、「CREATE_NO_WINDOW」を使用するために必要なライブラリをインポートしています。②では、Seleniumの設定値に「CREATE_NO_WINDOW」を設定することでコンソール画面を非表示にしています。
変更後のソースコード
9行目と29行目を追加しています。ソースコードが長いので、変更部分のみを記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import errno import os import platform import subprocess from subprocess import PIPE import time from selenium.common.exceptions import WebDriverException from selenium.webdriver.common import utils from subprocess import CREATE_NO_WINDOW # 追加 #省略 def start(self): """ Starts the Service. :Exceptions: - WebDriverException : Raised either when it can't start the service or when it can't connect to the service """ try: cmd = [self.path] cmd.extend(self.command_line_args()) self.process = subprocess.Popen(cmd, env=self.env, close_fds=platform.system() != 'Windows', stdout=self.log_file, stderr=self.log_file, stdin=PIPE, creationflags = CREATE_NO_WINDOW) #追加 #省略 |
以上でコンソール非表示対応は完了です。
終わりに
今回はSelenium実行時のコンソールを非表示にする方法について紹介しました。
皆さんが邪魔なコンソール画面から解放されれば嬉しいです。
ちなみにSeleniumを使用したWebスクレイピングのサンプルを作成しましたので、良かったらご一読ください。
参考記事
ネットで調べると今回紹介した方法以外にも様々な方法がありましたので、最後に参考にしたサイトをまとめておきます。
コメント
コメント一覧 (2件)
実施してみましたが、動かなくなりました
コメントありがとうございます。
>>実施してみましたが、動かなくなりました
そうなんですね。今回紹介した内容は環境によっては動かない場合もあります。
エラーになった原因としては以下のパターンが考えられます。
1:実行するプログラムでエラーが発生している
→今回の対応をする前の状態に戻してエラーが発生していないかご確認ください。
2:「from subprocess import CREATE_NO_WINDOW」のインポートができていない
→実行時のエラーをコンソールやログファイルに出力できるようなら、エラー内容をご確認ください。
3:chromedriverのバージョンがChromeのバージョンと一致していないので実行時にエラーになっている。
→最新のchromedriverを取得し、既存のchromedriverと差し替えた後で動作確認してみてください。
【chromedriver取得用URL】:https://chromedriver.chromium.org/downloads
コマンドで更新する場合:https://qiita.com/hanzawak/items/2ab4d2a333d6be6ac760
参考になれば幸いです。