Baixe o Geckodriver para Firefox & 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("https://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("https://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.




