3
respostas

Erro ao tentar rodar o codigo para abrir o FireFox

Boa noite

Ao tentar rodar o código abaixo, depois de ter importado o Selenium-java-3.4.0, dá o seguinte erro:

Codigo:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Teste_Sistema {

    public static void main(String[] args) {

        // abre firefox
        WebDriver driver = new FirefoxDriver();

        // acessa o site do google
       // driver.get("http://www.google.com.br/");


        // digita no campo com nome "q" do google
      //  WebElement campoDeTexto = driver.findElement(By.name("q"));
       // campoDeTexto.sendKeys("Caelum");

        // submete o form
        //campoDeTexto.submit();


    }

}

ERRO:

at com.google.common.base.Preconditions.checkState(Preconditions.java:738)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
    at org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:41)
    at org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:115)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:330)
    at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:207)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:108)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:104)
    at Teste_Sistema.main(Teste_Sistema.java:11)

O que seria esse erro? Está faltando alguma coisa?

3 respostas

Olá Jessica, tudo bem ?

Qual foi e Exception que foi lançada? A parte da stack trace que você postou não mostra qual foi .. Coloque toda a stack trace aqui pra gente poder ter uma ideia de qual o problema.

Abraço!

Oi Rafael

Segue:

Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
    at com.google.common.base.Preconditions.checkState(Preconditions.java:738)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
    at org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:41)
    at org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:115)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:330)
    at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:207)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:108)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:104)
    at Teste_Sistema.main(Teste_Sistema.java:11)

Olá Jéssica, tudo bem ?

Como a exception diz o Selenium não está conseguindo encontrar o executável do gecko. Caso você não tenha baixado pode encontrar o driver adequado pra sua plataforma usando a url citada na stack trace (https://github.com/mozilla/geckodriver/releases).

A partir dai você pode setar na variável de ambiente PATH o caminho para o executável ...

  • Em sistemas Unix você pode fazer da seguinte maneira: export PATH=$PATH:/caminho/para/geckodriver no seu arquivo de configuração shell

  • No Windows você precisa adicionar na variável Path do sistema o caminho completo para o executável

... ou fazer de forma programática, direto no código.

System.setProperty("webdriver.gecko.driver", "C:\Users\seuUsuario\documents\geckodriver.exe"); // por exemplo
WebDriver driver = new FirefoxDriver();

Espero ter ajudado. Abraço!