Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Dúvida no Ex. 20 da Aula 2 - Preenchendo e testando formulários

Olá, estou tentando executar o teste, ele chega a abrir o Firefox mas fecha e logo em seguida estoura o erro:

java.lang.NoSuchMethodError: com.google.common.base.Joiner$MapJoiner.appendTo(Ljava/lang/StringBuilder;Ljava/lang/Iterable;)Ljava/lang/StringBuilder; at com.google.common.net.MediaType.toString(MediaType.java:714) at org.openqa.selenium.remote.http.JsonHttpCommandCodec.encode(JsonHttpCommandCodec.java:222) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:139) at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:170) at org.openqa.selenium.firefox.FirefoxDriver$LazyCommandExecutor.execute(FirefoxDriver.java:380) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:620) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:247) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:129) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:218) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:211) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:207) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:120) at app.test.selenium.CadastroUsuarioTest.devePersistirUsuario(CadastroUsuarioTest.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Código é esse:

@Test public void devePersistirUsuario(){ // parte 2 : ação // determino a url a ser aberta pelo browser no teste this.driver = new FirefoxDriver(); this.driver.get("http://localhost:8080/usuario/new");

WebElement usuario = this.driver.findElement(By.name("usuario.nome")); WebElement email = this.driver.findElement(By.name("usuario.email"));

// preencho os campos do formulário usuario.sendKeys("Adriano Xavier"); email.sendKeys("axavier@empresa.com.br");

// realizo o a interação com o botão salvar do formulário WebElement botaoSalvar = this.driver.findElement(By.id("btnSalvar")); botaoSalvar.click();

boolean existeNome = this.driver.getPageSource().contains("Adriano Xavier"); boolean existeEmail = this.driver.getPageSource().contains("axavier@empresa.com.br");

assertThat(existeNome, equalTo(true)); assertThat(existeEmail, equalTo(true)); }

6 respostas

Juliana, coloque o código em formatação pra facilitar a visualização

você adicionou o jar do selenium no class path?

Desculpa, cara, mas eu coloquei o código em formatação mas parece que não funcionou direito, coloquei, porque se não não teria abert o Firefox, parece que ele está pegando uma versão antiga de algum jar, não sei.

pode ser.. já tentou com algum outro driver? do chrome por exemplo.

Tentei, mas não deu certo.

solução!

Então, estava tentando integrar o jar com o projeto do servidor, mas deixei de lado e criei um projeto a parte, ai funcionou, obrigado a todos por tentar ajudar.