Como o pacote “chromium-chromedriver” é usado? [fechadas]

3

O driver de selênio do Firefox parece estar travando (talvez porque eu esteja no 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.

Então, tentei instalar o driver do chromium, mas ele ainda falha com o selênio:

>>> 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

Estou faltando alguma coisa ou este pacote está completamente quebrado? Eu tenho o Chromium e o Google Chrome instalados para testes, se isso for importante.

    
por NoBugs 13.02.2015 / 06:20

1 resposta

0

  • O webdriver do Firefox falhou com esta mensagem:

    "The browser appears to have exited before we could connect"

    O que significa que o selênio conseguiu encontrá-lo. Eu também acredito que as versões beta podem ser a causa raiz, pois funciona fora da caixa para mim usando a versão do repo.

  • Para o Chromium, você precisa instalar os seguintes pacotes:

    sudo apt-get install python-selenium chromium-chromedriver
    

    E corrija o caminho da biblioteca libui_base.so (consulte Chromedriver no Ubuntu 14.04 - erro ao carregar bibliotecas compartilhadas: libui_base.so )

  • Para usar o webdriver do Chrome, instale a seguinte dependência:

    sudo apt-get install python-selenium
    

    E faça o download do Chromedriver de aqui , selecione o que corresponde à sua arquitetura, por exemplo:

    link ou link

    Extraia o arquivo chromedriver , por exemplo, na sua pasta $HOME .

    Em seguida, para iniciar o chromedriver a partir do python, abra um terminal e digite:

    $ 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'))
    

Por fim, recomendo usar a versão do pacote de python-selenium disponível nos repositórios do Ubuntu para evitar a instalação em /usr/local/lib .

    
por Sylvain Pineau 13.02.2015 / 09:49