Seleniumのpythonライブラリを利用した際、WebDriverException(“The browser appears to have exited “が発生したので、その対処法をまとめました.
1.事象
Seleniumのシンプルなテストクラス、test.pyを作成しました.
1 2 3 4 |
from selenium import webdriver browser = webdriver.Firefox() browser.get('http://yahoo.co.jp') |
これを実行したところ、以下のようなエラーが発生しました.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ python test.py Traceback (most recent call last): File "test.py", line 3, in <module> browser = webdriver.Firefox() File "/Library/Python/2.7/site-packages/selenium-2.45.0-py2.7.egg/selenium/webdriver/firefox/webdriver.py", line 59, in __init__ self.binary, timeout), File "/Library/Python/2.7/site-packages/selenium-2.45.0-py2.7.egg/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__ self.binary.launch_browser(self.profile) File "/Library/Python/2.7/site-packages/selenium-2.45.0-py2.7.egg/selenium/webdriver/firefox/firefox_binary.py", line 66, in launch_browser self._wait_until_connectable() File "/Library/Python/2.7/site-packages/selenium-2.45.0-py2.7.egg/selenium/webdriver/firefox/firefox_binary.py", line 100, in _wait_until_connectable raise WebDriverException("The browser appears to have exited " 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. |
2.解決法
環境変数DISPLAY が設定されていないことが原因.
1 2 |
$ echo $DISPLAY # 何も表示されない |
以下のように設定します.echoで確認して :1 が表示されればOK.
1 2 3 |
$ export DISPLAY=:1 $ echo $DISPLAY :1 |
再度実行すればfirefoxが起動して、指定したURLが開かれます.