web-dev-qa-db-ja.com

PythonでSeleniumでプログラム的にFirefoxをヘッドレスにするにはどうすればいいですか?

私はこのコードをpython、Selenium、そしてFirefoxで実行していますが、それでもFirefoxの「ヘッド」バージョンを取得します。

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")
68

Firefoxブラウザをヘッドレスで起動するには、Options()クラスを通してheadlessプロパティを次のように設定します。

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 whatever に設定してください。

これは、たとえば継続的インテグレーションを使用していて、サーバーで機能テストを実行したいが、それでも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
126
DebanjanB

私の答え:

set_headless(headless=True) is deprecated. 

https://seleniumhq.github.io/Selenium/docs/api/py/webdriver_firefox/Selenium.webdriver.firefox.options.html

options.headless = True

私のために働く

7
Jack Suze

最初の答えはもううまくいきません。

これは私のために働いた:

from Selenium.webdriver.firefox.options import Options as FirefoxOptions

options = FirefoxOptions()
options.add_argument("--headless")
driver = webdriver.Firefox(options=options)
driver.get("http://google.com")
1