9
respostas

Erro ao executar o programa(primeiro teste de automação)

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

public class TesteAutomatizado 
{

    public static void main(String[] args) 
    {

        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.google.com.br/");

        WebElement campoDeTexto = driver.findElement(By.name("q"));
        campoDeTexto.sendKeys("Caelum");

        campoDeTexto.submit();

    }
}

Após executar o programa em "Run as" é apresentado a seguinte mensagem:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Function
    at TesteAutomatizado.main(TesteAutomatizado.java:10)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Function
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 1 more

Alguém pode me ajudar por gentileza?

9 respostas

Oi Raquel, tudo bem ?

Parece que você não adicionou todas as dependencias corretamente, consegue confirmar isso para gente ?

Olá,

Quais são as dependências que devo adicionar?

Adicionei o "selenium-server-2.22.0.jar" na referenced libraries conforme vi no video.

E importei as bibliotecas.

Além desses itens quais posso estar esquecendo?

Obrigada!

Você precisa adicionar selenium-standalone.jar

Desculpa, achei que tinha instalado o correto rs.

Executei e apareceu uma nova mensagem:

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:754)
    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:141)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:339)
    at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:158)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:98)
    at TesteAutomatizado.main(TesteAutomatizado.java:11)

Por gentileza, pode me ajudar?

Você precisa baixar um executavel nas novas versões do selenium para rodar o firefox, se chama Gecko Driver, você pode baixa-lo aqui

E depois precisa colocar no projeto.

Eu instalei o Gecko Driver, mas como devo inserir no projeto?

Basta você colocar no projeto, da mesma forma que uma lib

Fiz um buld path com o Gecko Driver da mesma forma que foi feito com o selenium-standalone.jar. Porém, a mensagem continua sendo apresentada.

Mateus pelo que pesquisei não se coloca o Gecko Driver na lib da mesma forma que um jar pois o mesmo é um executável. Consegui colocar desta forma, porém, apresenta um novo erro conforme mensagem abaixo:

Por gentileza, consegue me ajudar?

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



public class TesteAutomacao 
{

    public static void main(String[] args) 
    {

        System.setProperty("webdriver.gecko.driver", "C:\\Users\\Inmetrics\\Desktop\\Raquel\\Automação\\geckodriver\\geckodriver.exe");
        //System.setProperty("webdriver.chrome.driver", "C:\\Users\\Inmetrics\\Desktop\\Raquel\\Automação\\Chromedriver\\chromedriver.exe");  

        WebDriver driver = new FirefoxDriver();
        //WebDriver driver = new ChromeDriver();
        driver.get("http://opensource.demo.orangehrmlive.com/");

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

        // submete o form
        campoDeTexto.submit();

    }

}

Porém, apresenta um novo erro:

1516098628248    geckodriver    INFO    geckodriver 0.19.1
1516098628258    geckodriver    INFO    Listening on 127.0.0.1:42163
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet(Ljava/util/Comparator;)Ljava/util/stream/Collector;
    at org.openqa.selenium.remote.NewSessionPayload.lambda$validate$4(NewSessionPayload.java:199)
    at java.util.stream.ReferencePipeline$11$1.accept(Unknown Source)
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.util.stream.ReferencePipeline$11$1.accept(Unknown Source)
    at java.util.Iterator.forEachRemaining(Unknown Source)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at java.util.stream.ReferencePipeline.forEach(Unknown Source)
    at org.openqa.selenium.remote.NewSessionPayload.validate(NewSessionPayload.java:215)
    at org.openqa.selenium.remote.NewSessionPayload.<init>(NewSessionPayload.java:163)
    at org.openqa.selenium.remote.NewSessionPayload.create(NewSessionPayload.java:114)
    at org.openqa.selenium.remote.NewSessionPayload.create(NewSessionPayload.java:107)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:67)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:98)
    at newAutomacao.TesteAutomacao.main(TesteAutomacao.java:18)