Configurando drivers do Selenium no Linux, Windows e OSX

O Selenium se comunica com os browsers através de drivers. Cada browser possui um driver próprio e, para conseguir fazer o ambiente funcionar conforme esperado, alguns astros precisam estar alinhados: Versão do Selenium, Versão do Browser, Versão do driver do Browser.

Para completar, normalmente eles não informam diretamente a qual versão eles estão associados, então recomendo que dê uma olhada no histórico das versões que, quando tem alguma mudança de compatibilidade, eles avisam algo do tipo: Firefox 58+, ou Selenium 3.10+

Versão 0.21.0 do geckodriver, informando que só funciona com Selenium 3.11 (ou maior) e Firefox (57 ou maior)

Pois bem, vamos aos drivers disponíveis… os browsers mais comuns são o Firefox , Chrome e Internet Explorer, sendo que o último estará disponível apenas para o Windows. Então precisaremos dos drivers Gecko driver, Chome driver e IEDriver, respectivamente.

Note, pela imagem acima, que tem versões disponíveis para os principais Sistemas Operacionais. Sua tarefa será, basicamente, fazer o download de cada um para a versão específica do seu sistema operacional e colocar todos em uma pasta específica para os drivers.

Para todos os sistemas operacionais, você deve reiniciar o prompt de comando/eclipse/whatever, para que as alterações sejam aplicadas. A partir desse ponto, vai diferenciar para cada sistema operacional, então vamos começar…

Windows

  1. Estando com todos os drivers em uma pasta…

2. Em “Painel de Controle > Sistema e Segurança > Sistema”, clique em “Configurações avançadas do sistema”

3. Na aba “Avançado”, clique em “Variáveis de Ambiente”

4. Localize o “Path” na sessão “Variáveis do sistema”

5. Com ele selecionado, clique em “Editar…”

6. Não apague o conteúdo da variável, apenas adicione no início o caminho para a pasta com drivers.

7. Não esqueça de colocar um ; (ponto e virgula) para fazer uma divisão com os demais valores que já estão na variável.

8. Clique no botão OK de todas as janelas que foram abertas

Linux

  1. Uma vez que baixei os drivers em algum diretório, basta adicioná-lo em algum arquivo que seja carregado pelo sistema operacional. Recomendo o arquivo /etc/profile, mas é importante saber que os arquivos podem variar dependendo da distribuição do SO que esteja utilizando (Ubuntu, no meu caso).
  2. Adicione, ao final do arquivo, uma linha que vai informar o diretório em questão ao PATH do sistema operacional: export PATH=$PATH:/CAMINHO/DA/SUA/PASTA
Exemplo para o Linux

OSX

  1. Uma vez que baixei os drivers em algum diretório, basta adicioná-lo em algum arquivo que seja carregado pelo sistema operacional, para o OSX, recomendo o arquivo /etc/paths.
  2. Adicione, ao final do arquivo, o caminho completo da pasta que você colocou os drivers: /CAMINHO/DA/SUA/PASTA

Pronto, é isso. Com essa configuração, não precisa informar o caminho para o driver dentro do seu código. Informar o caminho diretamente no código pode gerar problemas se você estiver compartilhando o projeto com mais alguém.

Caso esteja em dúvida em relação a que versões utilizar, estas são as que estão no meu ambiente há alguns meses:

  • Selenium: 3.4.0
  • Firefox: 62.0.3
  • Chrome: 69
  • GeckoDriver: 0.18.0
  • ChromeDriver: 2.41

Estão bem atrasadas em relação às atuais? Estão! Nem sempre você precisa estar com as versões mais atuais do browser, mas isso é assunto para outra oportunidade ;)