Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] custom command X page object

Não entendi a utilidade do element.js já que quando você ta criando a pagina-cadastro ta basicamente "repetindo" os comandos get.

Pois na minha visao parece que to importando algo que vou escrever novamente.

Qual seria a vantagem entre custom command X page object ?

Não é uma critica e sim uma dúvida de leigo.

1 resposta
solução!

Oi Patrick, tudo bem?

Entendo que a princípio pode parecer redundante, mas a ideia de separar os elementos em um arquivo elements.js e as ações em pagina-cadastro.js é justamente para facilitar a manutenção e reutilização do código.

Pensando em um cenário onde você tem vários testes que interagem com a mesma página. Se você tem os seletores (ou seja, os comandos get) definidos em cada um desses testes e, por algum motivo, um desses seletores muda (por exemplo, o atributo data-test é alterado), você teria que ir em cada teste e fazer a alteração. Isso pode ser bastante trabalhoso e propenso a erros.

Agora, se você tem todos os seletores centralizados em um arquivo elements.js, se algum seletor mudar, você precisa alterar apenas em um lugar. Isso torna a manutenção do código mais fácil e menos propensa a erros.

Sobre à sua dúvida sobre custom commands e page objects, os dois são técnicas para reutilizar código e melhorar a manutenção, mas são usados de maneiras ligeiramente diferentes.

Os custom commands são usados geralmente para ações que são realizadas em várias partes do seu aplicativo, independentemente da página em que você está.

Por exemplo: uma ação de login pode ser um custom command, pois você pode precisar fazer login de diferentes partes do seu aplicativo.

E os page objects são usados para organizar os seletores e ações que são específicos para uma página.

Isso faz com que os seus testes fiquem mais legíveis e fáceis de manter, pois você tem uma representação clara da página em seu teste.

Vamos de outro exemplo: no caso do pagina-cadastro.js, você tem métodos como acessarPaginaDeCadastro(), preencherFormulario() e submeterCadastro(). Olhando para esses métodos, é bastante claro o que cada um deles faz, e se você precisar alterar a forma como preenche o formulário, por exemplo, você sabe exatamente onde ir.

A ideia é sempre tornar o código mais fácil de ler e manter.

Espero ter ajudado a entender melhor.

Um abraço e bons estudos.