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

Selenium Testando o cadastro de usuários: Teste com erro

Olá galera,

Fiz o meu código conforme abaixo, mas quando executo o teste é retornado erro pelo JUnit, mesmo na página o cadastro ter sido realizado com sucesso. O JUnit no Eclipse esta apontando para a linha assertTrue(achouNome);

package teste;

import static org.junit.Assert.assertTrue;

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

public class UsuariosSystemTeste {
    @Test
    public void DeveAdicionarUsuario(){
        System.setProperty("webdriver.gecko.driver", "C:\\Drivers-Tester\\geckodriver.exe");

        WebDriver driver = new FirefoxDriver();
        driver.get("http://localhost:8080/usuarios/new");

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

        nome.sendKeys("Adriano Xavier");
        email.sendKeys("axavier@empresa.com.br");

        WebElement botaoSalvar = driver.findElement(By.id("btnSalvar"));
        botaoSalvar.click();//2a opção nome ou email.submit();


        boolean achouNome = driver.getPageSource().contains("Adriano Xavier");

        boolean achouEmail = driver.getPageSource().contains("axavier@empresa.com.br");

        assertTrue(achouNome);
        assertTrue(achouEmail);

        driver.close();

    }
}
2 respostas
solução!

Olá Carlos,

tente executar seu teste em modo debug para ver se ele passa normalmente, principalmente parando nas últimas 5 linhas. Se ele passar fazendo passo a passo em debug, pode ser que o código do Selenium esteja rodando as linhas para verificar se achou o nome e o email antes de terminar de fazer o submit no formulário e carregar a nova página.

Esse é um problema que temos com o Selenium WebDriver dado que muitas vezes ele não espera a nova página carregar antes de executar a próxima instrução. Para resolver isso, você verá o WebDriverWait na aula 5 deste curso, que permite você dar comandos para o Selenium esperar alguma coisa acontecer antes de executar a próxima ação.

Olá Lucas,

Comentei as linhas do assertTrue o teste é validado. Vou dar uma olha na aula 5.

Conseguir fazer o teste completo mudando agora para o Google Chrome, ele funcionou mesmo eu não tenho usado o WebDriverWait.

Obrigado pela ajuda.