Selenium usando Python - o executável Geckodriver precisa estar no PATH

435

Eu sou novo em programação e comecei há Pythoncerca de 2 meses e estou revisando o texto Automatize o chato de Sweigart com texto em Python . Estou usando o IDLE e já instalei o módulo selênio e o navegador Firefox. Sempre que tentei executar a função webdriver, recebo o seguinte:

from selenium import webdriver
browser = webdriver.Firefox()

Exceção: -

Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0DA1080>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0E08128>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 64, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Python\Python35\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Python\Python35\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    browser = webdriver.Firefox()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 135, in __init__
    self.service.start()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

Acho que preciso definir o caminho para, geckodrivermas não sei como, para que alguém possa me dizer como eu faria isso?

tadm123
fonte
2
Por favor, veja a minha resposta na pergunta semelhante aqui
Andrew
Estou colocando o geckodriver.exe no diretório Python / Python35 para que ele tenha o mesmo caminho e estou tendo ainda mais problemas.
tadm123
81
No Mac:brew install geckodriver
Nostalg.io 15/11
1
Descobri que executá-lo através do navegador Chrome é um pouco mais rápido que no Firefox, basta baixar o chromedriverpara isso.
tadm123
Nota: existe o Testcafe que foi aberto recentemente. Ele não requer nenhum plug-in de navegador, eles estão embutidos. Eu queria usar Selenium, mas isso parece uma alternativa interessante.
Ehvince

Respostas:

355

selenium.common.exceptions.WebDriverException: Mensagem: o executável 'geckodriver' precisa estar no PATH.

Primeiro, você precisará baixar o último geckodriver executável daqui para executar o mais recente firefox usando selênio

Na verdade, as ligações do cliente Selenium tentam localizar o geckodriverexecutável do sistema PATH. Você precisará adicionar o diretório que contém o executável ao caminho do sistema.

  • Nos sistemas Unix, você pode fazer o seguinte para anexá-lo ao caminho de pesquisa do sistema, se estiver usando um shell compatível com o bash:

    export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
  • No Windows, você precisará atualizar a variável de sistema Path para adicionar manualmente o caminho completo do diretório ao geckodriver executável ou à linha de comando (não se esqueça de reiniciar o sistema depois de adicionar o geckodriver executável no PATH do sistema para entrar em vigor) . O princípio é o mesmo que no Unix.

Agora você pode executar o seu código da mesma forma que está fazendo como abaixo: -

from selenium import webdriver

browser = webdriver.Firefox()

selenium.common.exceptions.WebDriverException: Mensagem: local binário esperado do navegador, mas incapaz de encontrar o binário no local padrão, nenhum recurso 'moz: firefoxOptions.binary' fornecido e nenhum sinalizador binário definido na linha de comando

A exceção afirma claramente que você instalou o firefox em outro local enquanto o Selenium está tentando encontrar o firefox e iniciar a partir do local padrão, mas não foi possível encontrá-lo. Você precisa fornecer explicitamente o local binário instalado do firefox para iniciar o firefox como abaixo: -

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('path/to/installed firefox binary')
browser = webdriver.Firefox(firefox_binary=binary)
Saurabh Gaur
fonte
8
Obrigado, mas eu defino o meu geckodriver.exeno C:\Python\Python35\seleniumdiretório e defino o caminho como você descreveu, mas está me dando o erro abaixo:
tadm123
4
Obrigado @Saurabh Gaur, está funcionando agora. Eu adicionei o caminho do Firefox às variáveis ​​do sistema manualmente e está tudo funcionando. Demora um pouco para lançar, mas acho que isso é normal. Obrigado!
tadm123
3
Eu recebi o erro "WebDriverException: Mensagem: falha ao iniciar o navegador: permissão negada" no início quando comecei a especificar o caminho binário do firefox, mas a reinicialização do computador (Windows 10) resolveu o problema. - Só para o caso de alguém estar com o mesmo problema que eu.
NoSuchElephantException 3/11
3
Qual é o binário? Isso significa executável?
Utilizador
12
Além dessa resposta, gostaria de expandir a configuração do PATHambiente inix. Você pode configurá-lo no código, uma vez que não precisa dele em todo o sistema: os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/' ou simplesmente mantenha o binário do geckodriver no diretório que já está no seu caminho:mv geckodriver /usr/local/bin
dsalaj 23/17
161

Isso resolveu para mim.

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'your\path\geckodriver.exe')
driver.get('http://inventwithpython.com')
Nesa
fonte
Se você receber permissão incorreta, tente remover [r '] do caminho apenas "excecutable_path =' path \ to \ your'diretory '"
Darius
@adityarawat Em que sistema operacional você está?
Nesa
mas agora estou recebendo OSError em vez de permissões erradas. De alguma forma, eu consegui copiar o geckodriver para / usr / local / bin. mas agora esse novo erro está me matando
aditya rawat
@adityarawat, você pode baixar o geckodriver de forma independente a partir daqui: github.com/mozilla/geckodriver/releases extrai-o com tar e o torna executável com chmod + x, ele não precisa estar em / usr / local / bin, você só precisa para especificar o seu caminho para ele
Nesa
Só para esclarecer, baixei o arquivo arm7hf.tar e o extraí e o adicionei ao caminho usando o comando export PATH=$PATH:geckodriver(ele é extraído na área de trabalho). Mas também não ajudou. Ainda recebo o OSError [erro 8]
aditya rawat
122

estas etapas RESOLVIDO para mim no ubuntu firefox 50.

  1. Baixar geckodriver

  2. Copie o geckodriver em / usr / local / bin

Você NÃO precisa adicionar

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/usr/bin/firefox'
browser = webdriver.Firefox(capabilities=firefox_capabilities)
Andrea Perdicchia
fonte
Em seu código você não pode adicionar a variável capacidade
Andrea Perdicchia
Você saberia como definir o diretório de download para o Firefox? Eu adicionei a seguinte pergunta Definir preferências do Firefox . Qualquer ajuda seria muito apreciada.
d84_n1nj4
No Debian ou Ubuntu, você deve usar o comando apt para instalar o Firefox. Para Windows, eu não tenho idéia, desculpe
#
Obrigado. Depois de aplicar esta resposta, tomei ainda esta solução para lidar com um problema de acompanhamento: stackoverflow.com/questions/43713445/...
HackNone
Obrigado, PyCharm não estava encontrando geckodriver embora tenha sido em casa e no projeto pasta em si, mas depois de movê-lo para / usr / / bin local, ele funcionou perfeitamente
Ronald Das
32

A resposta de @saurabh resolve o problema, mas não explica por que automatizar o material chato com o Python não inclui essas etapas.

Isso é causado pelo fato de o livro ser baseado no selenium 2.xe o driver do Firefox para essa série não precisa do driver gecko. A interface Gecko para acionar o navegador não estava disponível quando o selênio estava sendo desenvolvido.

A versão mais recente da série selenium 2.x é 2.53.6 (veja, por exemplo, estas respostas , para uma visualização mais fácil das versões).

A página da versão 2.53.6 não menciona lagartixa. Mas desde a versão 3.0.2, a documentação afirma explicitamente que você precisa instalar o driver gecko.

Se após uma atualização (ou instalação em um novo sistema), o software que funcionava bem antes (ou no sistema antigo) não funciona mais e você está com pressa, fixe a versão do selênio no virtualenv, executando

pip install selenium==2.53.6

mas é claro que a solução a longo prazo para o desenvolvimento é configurar um novo virtualenv com a versão mais recente do selenium, instalar o driver gecko e testar se tudo ainda funciona como esperado. Mas a versão principal da versão pode introduzir outras alterações na API que não são cobertas pelo seu livro; portanto, convém manter o selênio mais antigo, até ter certeza de que poderá corrigir qualquer discrepância entre a API do selênio2 e do selênio3.

Anthon
fonte
2
Eu desejo que esta era a resposta de topo
sudo-nim
1
isso me ajudou, obrigado Anthon
ghost21blade
25

No macOS com o Homebrew já instalado, você pode simplesmente executar o comando Terminal

$ brew install geckodriver

Como o homebrew já ampliou, PATHnão há necessidade de modificar nenhum script de inicialização.

roskakori
fonte
@roskakori Eu fiz isso e ele ficou instalado com sucesso, mas ainda estou recebendo o mesmo erro
JKC
Isso fez por mim, obrigado. Usando o Firefox 72.0.2 e Selenium 3.141.0
Sam
17

Para configurar o geckodriver para o Selenium Python:

Ele precisa definir o caminho do geckodriver com o FirefoxDriver conforme o código abaixo:

self.driver = webdriver.Firefox(executable_path = 'D:\Selenium_RiponAlWasim\geckodriver-v0.18.0-win64\geckodriver.exe')

Faça o download do geckodriver para o seu sistema operacional adequado (em https://github.com/mozilla/geckodriver/releases ) -> Extraia-o em uma pasta de sua escolha -> Defina o caminho corretamente, conforme mencionado acima

Estou usando o Python 3.6.2 e o Selenium WebDriver 3.4.3 no Windows 10.

Outra maneira de configurar o geckodriver:

i) Simplesmente cole o geckodriver.exe em / Python / Scripts / (no meu caso, a pasta era: C: \ Python36 \ Scripts)
ii) Agora escreva o código simples como abaixo:

self.driver = webdriver.Firefox()
Ripon Al Wasim
fonte
17

Se você estiver usando o Anaconda , basta ativar o ambiente virtual e instalar o geckodriver usando o seguinte comando :

    conda install -c conda-forge geckodriver
Rodolfo Alvarez
fonte
Sim, instala o geckodriver, mas o erro do pycharm permanece o mesmo.
WebComer 08/01/19
Oi, eu tentei muitas coisas e isso é a única coisa que funcionou para mim :-) obrigado
tezzaaa
12

Ubuntu 18.04+ e versão mais recente do geckodriver

Isso também deve funcionar para outras variedades * nix.

export GV=v0.26.0
wget "https://github.com/mozilla/geckodriver/releases/download/$GV/geckodriver-$GV-linux64.tar.gz"
tar xvzf geckodriver-$GV-linux64.tar.gz 
chmod +x geckodriver
sudo cp geckodriver /usr/local/bin/

Para atualização do mac para:

geckodriver-$GV-macos.tar.gz
jmunsch
fonte
12

Vejo as discussões ainda falarem sobre a maneira antiga de configurar o geckodriver baixando o binário e configurando o caminho manualmente.

Isso pode ser feito automaticamente usando o webdriver-manager

pip install webdriver-manager

Agora, o código acima na pergunta funcionará simplesmente com as alterações abaixo,

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
Navarasu
fonte
2
Isso funcionou para mim. Obrigado!
Igorkf 27/12/19
O Safari ou mesmo o Internet Explorer tem um gerenciador de driver semelhante?
Mischief_Monkey
11

A maneira mais fácil para o Windows!
Baixar a versão mais recente geckodrivera partir de aqui . Adicione o arquivo geckodriver.exe ao diretório python (ou a qualquer outro diretório que já esteja dentro PATH). Isso deve resolver o problema (testado no Windows 10)

Jalles10
fonte
Não é o Windows o pior. Obrigado pela solução rápida.
AJ_ 17/04/19
Esta é de longe a solução mais fácil !! Não é necessário reiniciar o computador!
olenscki 9/06
8

Passos para o MAC:

A solução simples é baixar o GeckoDriver e adicioná-lo ao PATH do sistema. Você pode usar uma das duas abordagens:

Método curto:

1) Baixe e descompacte o Geckodriver .

2) Mencione o caminho ao iniciar o driver:

driver = webdriver.Firefox(executable_path='/your/path/to/geckodriver')

Método longo:

1) Baixe e descompacte o Geckodriver .

2) Abrir .bash_profile. Se você não tiver criado ainda, você pode fazer isso usando o comando: touch ~/.bash_profile. Em seguida, abra-o usando:open ~/.bash_profile

3) Considerando que o arquivo GeckoDriver está presente na sua pasta Downloads, você pode adicionar as seguintes linhas ao .bash_profilearquivo:

PATH="/Users/<your-name>/Downloads/geckodriver:$PATH"
export PATH

Por isso, você está anexando o caminho do GeckoDriver ao PATH do sistema. Isso informa ao sistema onde o GeckoDriver está localizado ao executar seus scripts do Selenium.

4) Salve .bash_profilee force a execução. Isso carrega os valores imediatamente sem precisar reiniciar. Para fazer isso, você pode executar o seguinte comando:

source ~/.bash_profile

5) É isso aí. Você terminou!. Você pode executar o script Python agora.

Umang Sardesai
fonte
1
Consegui fazer o download geckodrivercom o Homebrew: brew install geckodrivere iniciei o Firefox via:driver = webdriver.Firefox(executable_path="/usr/local/bin/geckodriver")
Winterflags
7

Algumas informações adicionais / esclarecimentos para futuros leitores deste tópico:

O seguinte é suficiente como uma resolução para o Windows 7, Python 3.6, selenium 3.11:

A nota de @ dsalaj neste tópico anterior para Unix também é aplicável ao Windows; mexer com o caminho PAT. variável no nível do Windows e a reinicialização do sistema Windows podem ser evitadas.

(1) Faça o download do geckodriver (como descrito anteriormente neste tópico) e coloque o (descompactado) geckdriver.exe em X: \ Folder \ of \ your \ choice

(2) Exemplo de código Python:

import os;
os.environ["PATH"] += os.pathsep + r'X:\Folder\of\your\choice';

from selenium import webdriver;
browser = webdriver.Firefox();
browser.get('http://localhost:8000')
assert 'Django' in browser.title

Notas: (1) Pode levar cerca de 10 segundos para o código acima abrir o navegador Firefox para o URL especificado.
(2) O console python mostraria o seguinte erro se não houver um servidor executando no URL especificado ou exibindo uma página com o título que contém a string 'Django': selenium.common.exceptions.WebDriverException: Mensagem: Página de erro atingida: sobre : neterror? e = connectionFailure & u = http% 3A // localhost% 3A8000 / & c = UTF-8 & f = regular & d = Firefox% 20can% E2% 80% 9

Snidhi Sofpro
fonte
Obrigado, tentei todas as outras soluções, mas apenas a sua funcionou no meu Windows!
pso
4

Na verdade, descobri que você pode usar o último geckodriver sem colocá-lo no caminho do sistema. Atualmente estou usando

https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.zip

Firefox 50.1.0

Python 3.5.2

Selenium 3.0.2

Windows 10

Estou executando um VirtualEnv (que eu gerencio usando PyCharm, presumo que ele use o Pip para instalar tudo)

No código a seguir, posso usar um caminho específico para o geckodriver usando o paramater executable_path (eu descobri isso consultando Lib \ site-packages \ selenium \ webdriver \ firefox \ webdriver.py). Nota: Suspeito que a ordem dos argumentos dos parâmetros ao chamar o webdriver seja importante, e é por isso que o executable_path é o último no meu código (a segunda última linha está à direita)

Você também pode perceber que eu uso um perfil personalizado do firefox para solucionar o problema sec_error_unknown_issuer que você encontrará se o site que está testando tiver um certificado não confiável. Vejo Como desativar o aviso de conexão não confiável do Firefox usando o Selenium?

Após a investigação, verificou-se que o driver Marionette está incompleto e ainda está em andamento, e nenhuma quantidade de configuração de vários recursos ou opções de perfil para dispensar ou definir certificados estava funcionando. Portanto, era mais fácil usar um perfil personalizado.

Enfim, aqui está o código de como eu consegui o geckodriver para trabalhar sem estar no caminho:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

#you probably don't need the next 3 lines they don't seem to work anyway
firefox_capabilities['handleAlerts'] = True
firefox_capabilities['acceptSslCerts'] = True
firefox_capabilities['acceptInsecureCerts'] = True

#In the next line I'm using a specific FireFox profile because
# I wanted to get around the sec_error_unknown_issuer problems with the new Firefox and Marionette driver
# I create a FireFox profile where I had already made an exception for the site I'm testing
# see https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager

ffProfilePath = 'D:\Work\PyTestFramework\FirefoxSeleniumProfile'
profile = webdriver.FirefoxProfile(profile_directory=ffProfilePath)
geckoPath = 'D:\Work\PyTestFramework\geckodriver.exe'
browser = webdriver.Firefox(firefox_profile=profile, capabilities=firefox_capabilities, executable_path=geckoPath)
browser.get('http://stackoverflow.com')
Roochiedoor
fonte
Eu obtive o SyntaxError: (erro unicode) o codec 'unicodeescape' não pode decodificar bytes ... E eu tenho que mudar o caminho da lagartixa para epath = r'C: \ Users \ step_ \ Documents \ mtg_buyer \ geckodrivers \ geckodriver.exe '. Talvez o motivo seja que eu estou usando um Windows 10 chinês?
Endle_Zhenbo
3

Estou usando o Windows 10 e isso funcionou para mim:

  1. Faça o download do geckodriver aqui . Baixe a versão correta para o computador que você está usando
  2. Descompacte o arquivo que você acabou de baixar e recorte / copie o arquivo ".exe" que ele contém
  3. Navegue para C: {sua pasta raiz do python}. O meu era C: \ Python27. Cole o arquivo geckodriver.exe nesta pasta.
  4. Reinicie seu ambiente de desenvolvimento.
  5. Tente executar o código novamente, ele deve funcionar agora.
Edgar N
fonte
Obrigado por mencionar que você precisa reiniciar seu ambiente de desenvolvimento.
Profundo
3

Considere instalar um Firefox em contêiner:

docker pull selenium/standalone-firefox
docker run --rm -d -p 5555:4444 --shm-size=2g selenium/standalone-firefox

Conecte-se usando webdriver.Remote:

driver = webdriver.Remote('http://localhost:5555/wd/hub', DesiredCapabilities.FIREFOX)
driver.set_window_size(1280, 1024)
driver.get('https://toolbox.googleapps.com/apps/browserinfo/')
driver.save_screenshot('info.png')
Max Malysh
fonte
2

É realmente muito triste que nenhum dos livros publicados no Selenium / Python e a maioria dos comentários sobre esse assunto via Google não explique claramente a lógica do caminho para configurar isso no Mac (tudo é Windows !!!!). O youtubes todos captam no "depois" que você tem a configuração de caminhos (na minha opinião, a saída mais barata!). Portanto, para você maravilhosos usuários de Mac, use o seguinte para editar os arquivos do caminho do bash:

> $ touch ~ / .bash_profile; abra ~ / .bash_profile

Em seguida, adicione um caminho semelhante a este .... * # Configurando PATH para geckodriver PATH = “/ usr / bin / geckodriver: $ {PATH}” export PATH

Configurando PATH para o Firefox Selenium

PATH = "~ / Usuários / seunomePATH / VEnvPythonInterpreter / lib / python2.7 / pacotes de sites / selênio / webdriver / firefox /: $ {PATH}" PATH de exportação

Configurando PATH para executável no driver do firefox

PATH = "/ Usuários / seunomePATH / VEnvPythonInterpreter / lib / python2.7 / pacotes de sites / selênio / webdriver / common / service.py: $ {PATH}" PATH de exportação *

Isso funcionou para mim. Minha preocupação é quando a comunidade do Selenium Windows começará a jogar o jogo real e incluirá os usuários de Mac em sua arrogante associação ao clube.

JustASteve
fonte
2

O Selenium responde a essa pergunta em seu DESCRIPTION.rst

Drivers
=======

Selenium requires a driver to interface with the chosen browser. Firefox,
for example, requires `geckodriver <https://github.com/mozilla/geckodriver/releases>`_, which needs to be installed before the below examples can be run. Make sure it's in your `PATH`, e. g., place it in `/usr/bin` or `/usr/local/bin`.

Failure to observe this step will give you an error `selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

Basicamente, basta baixar o geckodriver, descompactá-lo e mover o executável para sua pasta / usr / bin

Peter Graham
fonte
Esta citação contém as instruções que funcionaram no linux mint 18.
Elliot Robert
2

Para usuários do Windows

use o código original como ele é:

from selenium import webdriver
browser = webdriver.Firefox()
driver.get("https://www.google.com")

faça o download do driver em: mozilla / geckodriver

Coloque-o em um caminho fixo (permanentemente) .. como exemplo, eu o coloquei em:

C: \ Python35

Em seguida, vá para as variáveis ​​de ambiente do sistema, na grade de "Variáveis ​​do sistema", procure a variável Path e adicione:

; C: \ Python35 \ geckodriver

geckodriver, não geckodriver.exe .

Ghanem
fonte
geckodriver, não geckodriver.exe.
Saurabh Chandra Patel
1

No Raspberry Pi, tive que criar a partir do driver ARM e definir o caminho do geckodriver e o logon:

sudo nano /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py

def __init__(self, firefox_profile=None, firefox_binary=None,
             timeout=30, capabilities=None, proxy=None,
             executable_path="/PATH/gecko/geckodriver",                     
firefox_options=None,
             log_path="/PATH/geckodriver.log"):
Nathan Gisvold
fonte
1

Se você usa o ambiente virtual e o win10 (talvez seja para outros sistemas), basta colocar o geckodriver.exe na seguinte pasta no diretório do ambiente virtual:

... \ my_virtual_env_directory \ Scripts \ geckodriver.exe

um animal de estimação
fonte
1
from webdriverdownloader import GeckoDriverDownloader # vs ChromeDriverDownloader vs OperaChromiumDriverDownloader
gdd = GeckoDriverDownloader()
gdd.download_and_install()
#gdd.download_and_install("v0.19.0")

isso fará com que você encontre o caminho para o seu gekodriver.exe no Windows

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'C:\\Users\\username\\\bin\\geckodriver.exe')
driver.get('https://www.amazon.com/')
Em lei
fonte
0

Mac 10.12.1 python 2.7.10 este trabalho para mim :)

def download(url):
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
browser = webdriver.Firefox(capabilities=firefox_capabilities,
                            executable_path=r'/Users/Do01/Documents/crawler-env/geckodriver')
browser.get(url)
return browser.page_source
do01
fonte
0

Estou usando o Windows 10 e o Anaconda2. Tentei definir a variável do caminho do sistema, mas não deu certo. Simplesmente adicionei o arquivo geckodriver.exe à pasta Anaconda2 / Scripts e tudo funciona muito bem agora. Para mim o caminho era: -

C: \ Usuários \ Bhavya \ Anaconda2 \ Scripts

Bhavya Ghai
fonte
0

Se você deseja adicionar os caminhos do driver no Windows 10:

  1. Clique com o botão direito do mouse no ícone "Este PC" e selecione "Propriedades" insira a descrição da imagem aqui

  2. Clique em "Configurações avançadas do sistema"

  3. Clique em "Variáveis ​​de ambiente" na parte inferior da tela
  4. Na seção "Variáveis ​​do usuário", realce "Caminho" e clique em "Editar"
  5. Adicione os caminhos às suas variáveis ​​clicando em “Novo” e digitando o caminho para o driver que você está adicionando e pressionando enter.
  6. Depois de inserir o caminho, clique em "OK"
  7. Continue clicando em "OK" até fechar todas as telas
Russ Thomas
fonte
0

Visite o Gecko Driver obtenha o URL do driver gecko na seção Downloads.

Clone este repositório https://github.com/jackton1/script_install.git

cd script_install

Corre

./installer --gecko-driver https://github.com/mozilla/geckodriver/releases/download/v0.18.0/geckodriver-v0.25.0-linux64.tar.gz
jackotonye
fonte
0
  1. verifique se você possui a versão correta do driver (geckodriver), x86 ou 64.
  2. verifique se você está verificando o ambiente certo, por exemplo, o trabalho está sendo executado em um Docker, enquanto o ambiente é verificado como o SO host
Wen
fonte
0

para mim, bastava instalar o geckodriver no mesmo ambiente:

$ brew install geckodriver

e o código não foi alterado:

from selenium import webdriver
browser = webdriver.Firefox()
Olesya M
fonte
0

Para adicionar meus 5 centavos, também é possível fazer echo PATH(Linux) e apenas mover o geckodriver para a pasta de sua preferência. Se uma pasta do sistema (não ambiente virtual) for o destino, o driver se tornará acessível globalmente.

Aramakus
fonte