Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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.