Encontrei um problema ao trabalhar com o Selenium. Para o meu projeto, eu tenho que usar o Chrome. No entanto, não consigo me conectar a esse navegador depois de iniciá-lo com o Selenium.
Por alguma razão, o Selenium não consegue encontrar o Chrome por si só. É o que acontece quando tento iniciar o Chrome sem incluir um caminho:
Traceback (most recent call last):
File "./obp_pb_get_csv.py", line 73, in <module>
browser = webdriver.Chrome() # Get local session of chrome
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
self.service.start()
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 58, in start
and read up at http://code.google.com/p/selenium/wiki/ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path. Please download from http://code.google.com/p/selenium/downloads/list and read up at http://code.google.com/p/selenium/wiki/ChromeDriver'
Para resolver esse problema, incluí o caminho do Chromium no código que inicia o Chrome. No entanto, o intérprete falha ao encontrar um soquete ao qual se conectar:
Traceback (most recent call last):
File "./obp_pb_get_csv.py", line 73, in <module>
browser = webdriver.Chrome('/usr/bin/chromium') # Get local session of chrome
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
self.service.start()
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 64, in start
raise WebDriverException("Can not connect to the ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the ChromeDriver'
Eu também tentei resolver o problema iniciando o chrome com:
chromium --remote-shell-port = 9222
No entanto, isso também não funcionou.
PS. Aqui estão algumas informações sobre o meu sistema:
www-client: chromium 15.0.874.121 dev-lang: python 2.7.2-r3 Selenium 2.11.1 SO: GNU / Linux Gentoo Kernel 3.1.0-gentoo-r1
Respostas:
Você precisa garantir que o binário independente do ChromeDriver (que seja diferente do binário do navegador Chrome) esteja no seu caminho ou esteja disponível na variável de ambiente webdriver.chrome.driver.
consulte http://code.google.com/p/selenium/wiki/ChromeDriver para obter informações completas sobre como conectar as coisas.
Editar:
Certo, parece haver um erro nas ligações do Python, ao ler o binário chromedriver do caminho ou da variável de ambiente. Parece que o chromedriver não está no seu caminho, você deve passá-lo como argumento ao construtor.
fonte
Para Linux
chromium-browser -version
sudo apt-get install chromium-browser
/usr/bin
diretóriosudo mv chromedriver /usr/bin
/usr/bin
Diretório Gotocd /usr/bin
sudo chmod a+x chromedriver
para marcá-lo como executável.finalmente, você pode executar o código.
fonte
Apenas Mac OSX
Uma maneira mais fácil de seguir em frente (supondo que você já tenha o homebrew instalado, o que você deve fazer se não o fizer primeiro e deixar o homebrew melhorar sua vida) é apenas executar o seguinte comando:
Isso deve colocar o chromedriver no seu caminho e você deve estar pronto.
fonte
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
brew doctor
e veja se isso encontra alguma coisa.Para Windows
Faça o download do ChromeDriver neste link direto OU obtenha a versão mais recente desta página .
Cole o
chromedriver.exe
arquivo na suaC:\Python27\Scripts
pasta.Isso deve funcionar agora:
fonte
Para janelas,
chromedriver.exe
coloque-o sob<Install Dir>/Python27/Scripts/
fonte
/usr/lib/
ou em outro lugar?PATH
Não basta ter o arquivo , colocá-lo no local/Scripts/
onderide.py
é trabalhado.Existem duas maneiras de executar testes python Selenium no Google Chrome. Estou considerando o Windows (Windows 10 no meu caso):
Pré-requisito: Faça o download do driver Chrome mais recente em: https://sites.google.com/a/chromium.org/chromedriver/downloads
Caminho 1:
i) Extraia o arquivo zip baixado em um diretório / local de sua escolha.
ii) Defina o caminho do executável no seu código como abaixo:
Caminho 2:
i) Basta colar o chromedriver.exe em / Python / Scripts / (no meu caso, a pasta era: C: \ Python36 \ Scripts)
ii) Agora escreva o código simples como abaixo:
fonte
Para o IDE do Windows:
Se o seu caminho não funcionar, você pode tentar adicioná-lo
chromedriver.exe
ao seu projeto, como nesta estrutura do projeto.Então você deve carregar o
chromedriver.exe
arquivo principal. Quanto a mim, eu carreguei odriver.exe
nodriver.py
...
significadriver.py's
diretório superior.
significa o diretório em quedriver.py
está localizadoEspero que isso seja útil.
fonte