Python pyinstallerでnoconsole指定時にchromeのコンソールも非表示にする方法
PyInstallerを使うと簡単にPythonスクリプトを実行ファイル(.exe)にできる。作成した実行ファイルを実行すると、デフォルトでコンソールが表示される仕様となっている。
実行ファイル作成時に、コンソールを非表示にするnoconsoleオプションが用意されているが、このオプションを指定して作成した実行ファイルを実行して際、chromeのコンソールが表示される問題に直面する。
noconsole指定時に、chromeのコンソールも表示にし、完全にコンソールが表示されないようにする方法を解説する。
Seleniumの設定ファイルを編集
コンソールを非表示にするには、PythonフォルダーのLib\site-packages\selenium\webdriver\common\services.py のSeleniumの設定ファイルを編集する。
Python仮想環境のvenvを使用している場合はvenv/Lib\site-packages\selenium\webdriver\common\services.pyを編集する。
下準備として、下記import文を記載。
from subprocess import CREATE_NO_WINDOW
70行目付近に記載の下記に追記する。
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) #追加
修正前
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)
変更後
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)
コメント ( 0 )
トラックバックは利用できません。
この記事へのコメントはありません。