a Automação é dividida em 4 pacotes, que são: objects,tasks,testcases e utils.
Em objects estão mapeados os elementos web que compoem a tela, dentre os quais: botões, textfield, links e etc. Os objetos relativos a cada tela foram categorizados em classes distintas...
Em vermelho: buttom
Em azul: link
Em verde: textfiled
Para criar um objeto usamos como exemplo a tela de cadastro de analista:
Declara-se 2 objetos: o WebDriver e o WebElement.
o driver é o que vai procurar o elemento na tela e o element vai ler e retornar.
para isso criamos um metodo static com nome get+elemento que recebe o WebDriver, dentro deste metodo o element recebera o driver que esta procurando o elemento na tela(.findElement), e ele ira procurar por um parametro.
Há muitos parametros para procurar, mas o indicado é o ID(Porque? porque ele é único, ou é pra ser), é aconselhavel procurar por outros parametros só se o elemento não tiver ID.
mas como eu vou saber o ID ?
Simples, clique com o botão direito do mouse no elemento e clique em inspect, abrira uma janela onde tera o elemento que você selecionou destacado, e ali você olha o ID.
depois disto retorna o element.
As Tasks representam o fluxo funcional do sistema.
ela vai ter um método static void que recebe o WebDriver e os dados pré cadastrados em utils/constant e este método ira realizar as ações em ordem, usando .sendKey(atributo) onde tenha que digitar algo e .click() nos botões e links.
Os testcases são o que vai rodar os testes.
estes terão 3 métodos: @before, @test, @after.
o @before e o @after serão iguais em todos os casos, pois eles abrem o navegador adicionam os dados pré cadastrados no WebDriver e fecham tudo.
o @test é onde os métodos criados anteriormente serão chamados, como no exemplo abaixo do cadastrar analista o usuario precisa fazer loguin e depois cadastrar o analista.
e por ultimo o pacote utils será onde ficarão o que tiver que ser pré cadastrado ou utilizado, como o driver do navegador que será usado para testar.