1. ホーム
  2. python

[解決済み] SeleniumでPythonを使ってプログラム的にFirefoxをヘッドレス化する方法とは?

2022-04-25 23:33:55

質問

このコードをpython、selenium、firefoxで実行していますが、firefoxの「head」バージョンがまだ表示されます。

binary = FirefoxBinary('C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', log_file=sys.stdout)
binary.add_command_line_options('-headless')
self.driver = webdriver.Firefox(firefox_binary=binary)

また、バイナリーのバリエーションもいくつか試してみました。

binary = FirefoxBinary('C:\\Program Files\\Nightly\\firefox.exe', log_file=sys.stdout)
        binary.add_command_line_options("--headless")

解決方法は?

Firefox Browser をヘッドレスで起動するためには、Firefox Browser に headless プロパティで Options() クラスは以下のようになります。

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.headless = True
driver = webdriver.Firefox(options=options, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
driver.get("http://google.com/")
print ("Headless Firefox Initialized")
driver.quit()


ヘッドレスモードを実現する方法はもう一つあります。Firefox でヘッドレスモードを無効にしたり有効にしたりする必要がある場合、コードを変更することなく、環境変数 MOZ_HEADLESS に変更します。 何であれ は、Firefox をヘッドレスで動作させたい場合、または全く設定しない場合に使用します。

これは、例えば継続的インテグレーションを使用していて、機能テストをサーバーで実行しつつ、PCでは通常モードでテストを実行したい場合に非常に便利です。

$ MOZ_HEADLESS=1 python manage.py test # testing example in Django with headless Firefox

または

$ export MOZ_HEADLESS=1   # this way you only have to set it once
$ python manage.py test functional/tests/directory
$ unset MOZ_HEADLESS      # if you want to disable headless mode


YouTube動画で見る手順


アウトロ

SeleniumでChromeブラウザをヘッドレスモードで起動するためのChromeDriverの設定方法は?