概要
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
僕から以上