Похоже, что драйвер селена в Firefox дает сбой (возможно, потому, что я использую Firefox-beta ppa?):
>>> from selenium import webdriver
>>> webdriver.Firefox
<class 'selenium.webdriver.firefox.webdriver.WebDriver'>
>>> webdriver.Firefox()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 59, in __init__
self.binary, timeout),
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__
self.binary.launch_browser(self.profile)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 66, in launch_browser
self._wait_until_connectable()
File "/usr/local/lib/python2.7/dist-packages/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.
Я попытался установить драйвер хрома, но с селеном все равно не удалось :
>>> webdriver.Chrome()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 59, in __init__
self.service.start()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/service.py", line 66, in start
"ChromeDriver executable needs to be available in the path. "
selenium.common.exceptions.WebDriverException: Message: ChromeDriver executable needs to be available in the path. Please download from http://chromedriver.storage.googleapis.com/index.html and read up at http://code.google.com/p/selenium/wiki/ChromeDriver
Я что-то упустил или этот пакет полностью сломан? У меня для тестирования установлены и Chromium, и Google Chrome, если это важно.
Веб-драйверу Firefox не удалось отправить следующее сообщение:
«Похоже, что браузер завершил работу, прежде чем мы смогли подключиться»
blockquote>что селену удалось его найти. Я также полагаю, что бета-версии могут быть основной причиной, поскольку она работает «из коробки» для меня, используя версию репо.
Для Chromium вы должны установить следующие пакеты:
sudo apt-get install python-selenium chromium-chromedriver
и исправить путь к библиотеке libui_base.so
(см. Chromedriver в Ubuntu 14.04 - ошибка при загрузке общих библиотек: libui_base.so )
Для использования веб-драйвера Chrome установите следующую зависимость:
sudo apt-get install python-selenium
И загрузите Chromedriver из [ 1110] здесь , выберите тот, который соответствует вашей архитектуре, например:
http://chromedriver.storage.googleapis.com/2.14/chromedriver_linux64.zip или http : //chromedriver.storage.googleapis.com/2.14/chromedriver_linux32.zip
Извлеките файл chromedriver
, например, в папку $HOME
.
Затем, чтобы запустить хромедрайвер из python, откройте терминал и введите:
$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> from selenium import webdriver
>>> driver = webdriver.Chrome(os.path.expanduser('~/chromedriver'))
Наконец, я бы рекомендовал использовать версию пакета python-selenium
, доступную в Ubuntu. хранилища, чтобы избежать установки в /usr/local/lib
.