2
respostas

dúvidas módulo 3

Não entendi essa explicação

Precisamos do driver do Selenium. Mas, ao invés de instanciar um driver dentro da classe, vamos receber esse driver pelo construtor.

Se for possível dizer o porque é necessário utilizar esse construtor, um outro ponto que não entendi é

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); }

não vejo a diferença entre usar esse método, ou o método

public void novo() { // clica no link de novo usuario driver.findElement(By.linkText("Novo Usuário")).click(); }

De ambas as formas sempre vai clicar no link e direcionar para a página para criar um novo usuário, poderiam explicar?

2 respostas

Opa, você recebe o driver pq existe a chance do projeto usar vários page objects e você não vai querer instanciar o driver várias vezes.

Em relação a retornar um objeto em vez de void.. a ideia é justamente você concentrar as navegações de um novo usuário dentro de uma classe que represente só isso.. dessa forma, sempre que precisa acessar essas navegações, você pode usar essa classe.

Alberto a parte do construtor entendi, mas ainda não entendi essa parte

Precisamos agora chegar nesse NovoUsuarioPage. Mas quando chegamos nela? Quando clicamos no link "Novo Usuário". Ou seja, o método novo(), depois de clicar no link, precisa retornar um NovoUsuarioPage

Pelo o que eu entendi do método novo, antes de colocar NovoUsuarioPage, funciona da mesma forma, ou seja, sempre vai abrir a página para criar um novo usuário, porque precisa retornar o NovoUsuarioPage? Porque preciso retornar um objeto, se o resultado final é o mesmo, carregar a página para inclusão de um novo objeto?