1
resposta

Código da primeira aula falha no teste

Ao executar o teste abaixo, o mesmo não encontra o nome ou email, no entanto debugando ele encontra as informações. Teria que colocar uma threadsleep para funcionar?

package br.com.selinium.test;

import static org.junit.Assert.assertTrue;

import org.junit.After;
import org.junit.Before;
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 UsuariosSystemTest {

    private WebDriver driver;

    @Before
    public void inicializa() {
        System.setProperty("webdriver.gecko.driver", "D:\\geckodriver.exe");
        driver = new FirefoxDriver();
    }

    @Test
    public void deveAdicionarUmUsuario() {
        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("Leila2");
        email.sendKeys("leila2@terra.com.br");
        nome.submit();

        boolean achouNome = driver.getPageSource().contains("Leila2");
        boolean achouEmail = driver.getPageSource().contains("leila2@terra.com.br");

        assertTrue(achouNome);
        assertTrue(achouEmail);
    }

    @After
    public void finaliza() {
        driver.close();
    }
}
1 resposta

Oi Fabrício,

Pode ser porque demorou para aparecer o elemento na página e o selenium joga exception nesse caso, dizendo que não encontrou o elemento.

Você pode adicionar um delay para o selenium buscar elementos na página da seguinte maneira:

driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);

Abs.