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

Erros: reescrevendo os testes

Escrevi o código idêntico porém estou com erros nas classes UsuariosPage e NovoUsuarioPage no eclipse. Seguem os códigos fontes:

package Aula3;

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

public class NovoUsuarioPage {

    private WebDriver driver;

    public void UsuariosPage(WebDriver driver) {
        this.driver = driver;
    }

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

        nome.sendKeys(nome);
        email.sendKeys(email); 

        nome.submit();

    } 

    public boolean validacaoDeNomeObrigatorio() {
        return driver.getPageSource().contains("Nome obrigatorio!");
    }
}



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

import Aula3.NovoUsuarioPage;

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 Aula3;
import static org.junit.Assert.*;

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;
    private UsuariosPage usuarios;

    @Before
    public void inicializa() {
        this.driver = new FirefoxDriver();
        this.usuarios = new UsuariosPage(driver);

        // visitamos a pagina de usuarios
        usuarios.visita();
    }

    @Test
    public void deveAdicionarUmUsuario() {

        usuarios.novo()
        .cadastra("Ronaldo Luiz de Albuquerque", "ronaldo2009@terra.com.br");

        assertTrue(usuarios
        .existeNaListagem("Ronaldo Luiz de Albuquerque", "ronaldo2009@terra.com.br"));

    }

    @Test
    public void naoDeveAdicionarUmUsuarioSemNome() {

                NovoUsuarioPage form = usuarios.novo();

                form.cadastra("", "ronaldo2009@terra.com.br");

        assertTrue(form.validacaoDeNomeObrigatorio());        
    }

    @After
    public void encerra() {
        driver.close();
    }

}
5 respostas

Oi Renato

Quais erros acontecem nessas classes? É erro de compilação?

Oi Rodrigo,

Consegui deixar o código sem erros, porém não sei o que acontece que ao executar o código não abre a página de testes do sistema de leilões. Apenas abre a página inicial padrão do firefox com a tela do skype. Isso está acontecendo com o código do exercício anterior também que estava funcionando e por algum motivo não funciona mais.

A versão do seu firefox mudou?

Há um bug conhecido entre versão do selenium e firefox. O navegador abre, mas a tela fica branca... depois de um tempo o teste falha.

Tenta pesquisar as versões do firefox compatíveis.

solução!

Oi Rodrigo,

Sim a versão estava na 47, fiz o downgrade para a 45 e voltou a funcionar novamente. Tentei rodar o marionette que dizem corrigir o bug. Porém, não obtive sucesso. Fiz o downgrade do firefox e resolveu. Obrigado!

Oi Renato

Que bom que resolveu! Talvez o comentário que eu tenho feito nessa outra dúvida também ajude:

https://cursos.alura.com.br/forum/topico-qual-a-versao-do-selenium-eu-posso-usar-22073