Baixe Geckodriver: como instalar Firefox Driver para Selenium
Em que consiste o GeckoDriver Selenium?
O termo Gecko significa um mecanismo de navegador da Web embutido no Mozilla Firefox navegador. O driver Gecko atua como um proxy entre clientes habilitados para Web Driver(Eclipse, Netbeans, etc.) e Mozilla Firefox navegador. Em suma, o driver Gecko atua como um link entre Selenium Testes de driver Web e Mozilla Firefox navegador.
Antes Selenium 3, Mozilla Firefox navegador era o navegador padrão para Selenium. Depois de Selenium 3, os testadores precisam inicializar o script para usar Firefox usando GeckoDriver explicitamente. Selenium usa o protocolo W3C Webdriver para enviar solicitações ao GeckoDriver, que as traduz em um protocolo chamado Marioneta. Firefox entenderá os comandos transmitidos na forma de Mariprotocolo onette e os executa.
Como baixar e instalar o GeckoDriver em Selenium
Gecko Driver está disponível como um arquivo executável que pode ser baixado no sistema. A seguir está a lista de etapas para baixar o driver gecko.
Passo 1 ) Selecione a versão apropriada.
Nesta página https://github.com/mozilla/geckodriver/releases ,Selecione a versão apropriada para download do GeckoDriver com base no seu sistema operacional
Passo 2) Extraia o arquivo ZIP.
Assim que o download do arquivo ZIP for concluído, extraia o conteúdo do arquivo ZIP em uma pasta de arquivos
Passo 3) Observe a localização.
Observe o local onde você extraiu o driver. A localização será usada posteriormente para instanciar o driver.
Maneiras de inicializar o GeckoDriver
Existem três maneiras diferentes de inicializar o GeckoDriver.
1. Usando DesiredCapabilities
Primeiro, defina a propriedade do sistema para Gecko Driver.
Sintaxe:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
Exemplo:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Em seguida, defina os recursos desejados.
Ajuda dos recursos desejados Selenium entender o nome do navegador, versão e sistema operacional para executar os testes automatizados. Abaixo está o código para definir o driver gecko usando a classe DesiredCapabilities.
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true);
Aqui está o código completo
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
2. Usando a propriedade da marionete
O driver Gecko também pode ser inicializado usando a propriedade marionette conforme abaixo
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Se o driver gecko for inicializado usando o método acima, o código para os recursos desejados é não necessário.
3. Usando FirefoxOpções
Mozilla Firefox a versão 47+ possui driver de marionete como sistema legado. Aproveitando isso, o driver de marionete pode ser chamado usando Firefox Opções como abaixo
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Código para iniciar o Firefox usando o driver Gecko
package com.guru99.demo; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class GeckoDriverDemo { String driverPath = "D:\\Guru99Demo\\GeckoDriver.exe"; public WebDriver driver; @Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); driver = new FirefoxDriver(capabilities); } @Test public void navigateToUrl() { driver.get("http://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } }
Explicação do código
Método @Before
Inicialmente, precisamos definir a propriedade do sistema do driver gecko para o local de download do arquivo geckdriver.exe. Precisamos definir a propriedade marionette como verdadeira para Selenium usar Mariprotocolo onette para se comunicar com o Gecko Driver. Finalmente, precisamos iniciar o Firefox instância do navegador usando o objeto para Desired Capabilities.
As declarações abaixo ajudam a realizar a tarefa acima.
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
@Método de teste
Estamos navegando para o URL especificado pelo usuário usando o método “get” integrado fornecido por Selenium motorista web. A declaração abaixo ajuda a conseguir o mesmo.
driver.get("http://demo.guru99.com/selenium/guru99home/");
Método @Depois
Finalmente, estamos fechando a instância do navegador usando o método quit.
driver.quit();
Modifique um script de não Gecko para Gecko
Script de driver não gecko usado antes Selenium 3 foi direto. Precisamos criar uma instância de Firefox driver e use a variável de instância.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
Para converter para gecko, basta adicionar uma linha de código
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
Exceções comuns ocorreram ao usar o Gecko Driver
A seguir está uma lista de exceções comuns que ocorrem durante o uso do Gecko Driver e com resolução.
Vantagem de usar Gecko Driver
Selenium Webdriver versão 2.53 não é compatível com Mozilla Firefox versão 47.0+. O Firefox driver usado em versões anteriores do Mozilla Firefox será descontinuado e apenas a implementação do GeckoDriver será usada. Conseqüentemente, os testadores são forçados a usar GeckoDriver se quiserem executar testes automatizados no Mozilla Firefox versão 47.0+. Mas a grande questão – qual é a vantagem?
A principal vantagem de usar o GeckoDriver em oposição ao padrão Firefox motorista é Compatibilidade. GeckoDriver usa Protocolo WebDriver W3C para se comunicar com Selenium. W3C é um padrão universalmente definido para Web Driver. Isso significa Selenium Desenvolvedores (Pessoas que codificam Selenium base) não precisa criar uma nova versão do Web Driver para cada versão do navegador. O mesmo Web Driver pode ser usado para múltiplas versões de navegador. Portanto, o GeckoDriver é preferido em comparação com a implementação anterior do Firefox motorista.