Firefox 47にしたら、Selenium(python経由)が動かなくなった。
1 |
selenium.common.exceptions.WebDriverException: Message: The browser appears to have exited before we could connect. If you specified a log_file in the FirefoxBinary constructor, check it for details. |
こんなエラーで止まりやがる。
当初は、Firefox 46にダウングレードして凌いでいたが、ブラウザをアップデート出来ないのは嫌なので、Firefox 46のバイナリを別に置いて対応することにした。
自分の環境は、ubuntu 16.04で当然64bit。他は知らない。
https://ftp.mozilla.org/pub/firefox/releases/46.0.1/linux-x86_64/ja/
ここから、46.0.1をダウンロードして、適当な場所に展開。
1 2 3 4 5 6 7 |
$ wget https://ftp.mozilla.org/pub/firefox/releases/46.0.1/linux-x86_64/ja/firefox-46.0.1.tar.bz2 $ tar jxvf firefox-46.0.1.tar.bz2 $ cd firefox $ ./fireox |
で別のFirefoxが起動するはず。
後はpython側の修正
- 修正前
1 2 3 |
from selenium import webdriver browser = webdriver.Firefox() |
- 修正後
1 2 3 4 5 |
from selenium import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary binary = FirefoxBinary('/home/foo/firefox/firefox') browser = webdriver.Firefox(firefox_binary=binary) |
binaryを固定で指定するようにした。
今までも、SeleniumはFirefoxがバージョンアップすると落ちることがあったので、
これからはバイナリ固定でいいと思う。
普段メインで使うブラウザがバージョンアップ出来ないのは、セキュリティ的にも精神衛生上もよろしくない。
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)