Repositório criado para estudo de automação de testes com Java 11 - JDK (SE), Apache MAven (com variáveis de ambiente), IntelliJ, Selenium, JUnit e Cucumber.
-
Adicionar o selenium nas dependências
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> -
Adicionar o WebDriver nas dependências
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.6.1</version> </dependency> -
Adicionar o JUnit nas dependências
<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>6.10.4</version> </dependency> -
Adicionar o Cucumber para o java nas dependêcias
<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>6.10.4</version> </dependency> -
Adicionar o Cucumber para o JUnit nas dependêcias
<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>6.10.4</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.8.2</version> <scope>test</scope> </dependency>
- O Chromedriver funciona como um driver para o browser;
- Precisamos instanciar o Webdriver ou Webdrivermanager;
- O Webdriver é implementado pela classe Chromedriver;
- O Selenium já possui implementações para vários navegadores.
- O Webdriver é responsável por fazer a comunicação com o navegador;
Nesse projeto essa classe será criada na pasta src/test/java/runner; Aqui será instanciada a classe para navegar, retornar as configurações do navegador e ser instanciada e chamada em outras classes.
- Classe estática para método getnavegador();
- Variáveis necessárias;
- Instanciando o WebDriver Chrome;
- Aplicando opções ao navegador para deixar mais leve;
- Chamada ao navegador; a. navegador = new ChromeDrive(options); b. navegador.manage().window().maximize();
- Retorno do navegador;
Esta classe da suporte ao teste
- Utilização do Junit a. Pré condições (Ex.Abrir navegador); b. Pós condições (Ex. Fechar navegador); c. Steps (São os passos que serão executados após um comportamento; d. Validação;
- Annotations a. Funciona com marcadores no código; b. Define o que será executado; c. Têm a Função de substituir o método main
- Primeiro precisamos extender o hooks
- @test (Executa o passo a passo dos testes)
- @Displayname (Dizer qual o nome do teste que será executado. ex:Cenário)
- teste()
- throws InterruptedException (Caso tenha Assertions)
- uso do localizador By.cssSelector e By.xpath