2
respostas

Bom dia professor estou tentando executar os testes automatizados com Page objects.

Bom dia professor estou tentando executar os testes automatizados com Page objects mais não estava funcionando o método usuarios.visita(); então baixei o arquivo do curso e importei para minha maquina e o mesmo apresentou o mesmo problema vou enviar o código para você da uma olha da e ver onde esta errado.

package br.com.caelum.teste;
import static org.junit.Assert.assertTrue;
import org.junit.After;
import org.junit.Before;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class UsuarioSystemTest {
    private WebDriver driver;
    private UsuariosPage usuarios;

    @Before
    public void inicializa() {
        this.driver = new FirefoxDriver();
        this.usuarios = new UsuariosPage(driver);
    }
    @Test
    public void deveAdicionarUmUsuario() {
        usuarios.visita();
        usuarios.novo()
        .cadastra("Ronaldo Luiz de Albuquerque", "ronaldo2009@terra.com.br");
        assertTrue(usuarios.existeNaListagem(
                "Ronaldo Luiz de Albuquerque", "ronaldo2009@terra.com.br"));
    }
    @After
    public void encerra() {
        driver.close();
    }
}



package br.com.caelum.teste;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class UsuariosPage {
    private WebDriver driver;
    public UsuariosPage(WebDriver driver) {
        this.driver = driver;
    }
    public void visita() {
        driver.get("localhost:8080/usuarios");
    }

public NovoUsuarioPage novo() {
        // clica no link de novo usuario
        driver.findElement(By.linkText("Novo Usuário")).click();
        // retorna a classe que representa a nova pagina
        return new NovoUsuarioPage(driver);
    }

    public boolean existeNaListagem(String nome, String email) {
        // verifica se ambos existem na listagem
        return driver.getPageSource().contains(nome) && 
                driver.getPageSource().contains(email);
    }

}
 
package br.com.caelum.teste;

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

public class NovoUsuarioPage {
    private WebDriver driver;

    public NovoUsuarioPage(WebDriver driver) {
        this.driver = driver;
    }

    public void cadastra(String nome, String email) {
        WebElement txtNome = driver.findElement(By.name("usuario.nome"));
        WebElement txtEmail = driver.findElement(By.name("usuario.email"));
        txtNome.sendKeys(nome);
        txtEmail.sendKeys(email);

        txtNome.submit();

    }
}
2 respostas

Oi Jefferson, mil perdões pela demora!

Só que mesmo com esse super atraso, ainda precisamos saber exatamente qual erro está aparecendo para você. Pode nos enviar?

Fala Alberto, consegui , o que estava acontecendo é que na instrução cadastra eu estava colocando (String nome, String email) com isso o Junit estava se perdendo,

 public void cadastra(String nome, String email)