概要
FirefoxでSeleniumを実行するとgeckodriver.log
というログファイルが作成される。そのようなログファイルが作成されないように設定する。
import os import time from selenium import webdriver DRIVER_PATH = '/usr/local/bin/geckodriver' driver = webdriver.Firefox(executable_path=DRIVER_PATH, service_log_path=os.path.devnull) driver.get('https://www.google.com') time.sleep(3) driver.quit()
前提
とりあえずPythonでSeleniumを実行できること。Seleniumがインストールされていること。
はじめに
FirefoxでSeleniumを実行すると、ログが生じます。例えば、次のようなファイルを考えてみます。
import time from selenium import webdriver DRIVER_PATH = '/usr/local/bin/geckodriver' driver = webdriver.Firefox(executable_path=DRIVER_PATH) driver.get('https://www.google.com') time.sleep(3) driver.quit() print('SUCCESS')
すると次のようになります。
$ ls firefox_selenium.py $ python firefox_selenium.py SUCCESS $ ls firefox_selenium.py geckodriver.log
この geckodriver.log
が作成されないようにします。
解決策
driver
の箇所を次のように修正すれば、ログは出ないようにします。
#### before driver = webdriver.Firefox(executable_path=DRIVER_PATH) #### after import os driver = webdriver.Firefox(executable_path=DRIVER_PATH, service_log_path=os.path.devnull)
- 作成されるログを
/dev/null
に捨てるという処理です。 /dev/null
は通常、不要な出力ファイルを捨てるのに使われます。いわばファイルの墓場です。
注意点
注意1: OSモジュールをインポートすること
os.path.devnull
を使うためには標準モジュールのos
をインポートする必要がありますので、忘れないようにしてください。
注意2: service_log_path
の代わりにlog_path
を使うと警告が出る
driver
の引数をservice_log_path
の代わりにlog_path
と書くと警告が出ます(警告は出ますがログは出ません)。
#### no warning driver = webdriver.Firefox(executable_path=DRIVER_PATH, service_log_path=os.path.devnull) #### warning driver = webdriver.Firefox(executable_path=DRIVER_PATH, log_path=os.path.devnull)
次のような警告が出ます。
$ ls firefox_selenium.py $ python firefox_selenium.py /Users/xxxxxxxx/Desktop/firefox_selenium.py:xx: DeprecationWarning: use service_log_path instead of log_path SUCCESS $ ls firefox_selenium.py
僕から以上