Selenium WebDriver(Pythonバインディング)でFireFoxを使おうとした際に、以下のエラーが出た。
>>> from selenium import webdriver
>>> driver = webdriver.Firefox()
...
FileNotFoundError: [Errno 2] No such file or directory: '/Applications/Firefox.app/Contents/MacOS/firefox-bin'
引数なしでwebdriver.Firefox
を呼んだ場合、各環境毎のデフォルトのパスが使用される。(Macの場合は/Applications/Firefox.app/Contents/MacOS/firefox-bin
)
自身の環境ではHomebrew-Cask経由でFireFoxをインストールしており、その場合のパスは~/Applications/Firefox.app/Contents/MacOS/firefox-bin
になる。このパスをWebDriverに伝えるためには、以下のようにFireFoxBinary
インスタンスを与える必要がある。
>>> bin = webdriver.firefox.webdriver.FirefoxBinary('/Users/FGtatsuro/Applications/Firefox.app/Contents/MacOS/firefox')
>>> driver = webdriver.Firefox(firefox_binary=bin)