Selenium WebDriver – Primeiro script de testes no Eclipse

Para criar o primeiro script de testes, primeiramente, devemos ter realizado as configurações do projeto, de acordo com o post anterior.

Realizadas as configurações, devemos criar uma JUnit Test Case. Para este exemplo, chamaremos de “ExemploTaketest”.

Para a criação da classe, devemos seguir os seguintes passos: clicar com o botão direito em cima do projeto TakeTestWebDriver > New > JUnitTestCase.

Figura 1 – Criando o JUnit Test Case


Ao abrir o JUnit Test Case, você deverá preencher o campo Name, deixar as outras configurações no default e clicar em Finish.

Figura 2 - Nomeando o JUnit Test Case

Figura 2 – Nomeando o JUnit Test Case


Para escrevermos os scripts dos testes, precisaremos entender um pouco sobre as chamadas e as classes WebDriver e WebElement, que utilizaremos nos testes.

Chamadas

  • @Before: é executado antes de qualquer Caso de Teste, por exemplo, abrir uma página em um browser.
  • @Test: é utilizado para identificar que é Caso de Teste.
  • @After: todas as ações que estão contidas nele são executadas após cada Caso de Teste rodar; por exemplo: fechar browser.

WebDriver

O WebDriver é a classe base do Selenium. A partir dela, podemos realizar diversas funcionalidades de navegação; por exemplo: abrir um browser, fechar um browser, fechar uma aba de um browser, entre outras. Para o nosso exemplo de script de testes, utilizaremos abrir e fechar um browser.

Seguem exemplos de funções de navegação que serão utilizadas:

  • Abrir o browser: get(“url”);
  • Atualizar página: navigate().refreseh();
  • Fechar página: quit();

WebElement

WebElement é uma classe do Selenium representando um elemento HTML. As principais operações de interação em uma página são realizadas através desta interface; por exemplo: interações com caixas de texto, botões, links, entre outras.

Dentro dessa classe, utilizarmos o método findElements no nosso primeiro test case. Este método permite localizar os elementos dentro de uma página. Porém, para localizar o elemento, precisaremos também da classe By, que determina o meio (ID, name, class, xpath) pelo qual o iremos encontrar.

Seguem exemplos de como codificar para encontrar os elementos:

  • Encontrar elementos através do ID:

WebElement elemento = driver.findElement(By.id(“ID do elemento”));

  • Encontrar elementos através no nome:

WebElement elemento = driver.findElement(By.name(“nome elemento”));

  • Encontrar elementos através do nome da classe:

WebElement element = driver.findElement(By.className(“nome classe”));

Dentro desta mesma classe, utilizaremos validações de elementos, através de asserts.

Exemplos de como codificar para validação dos elementos:

  • Validar se o elemento está exibido na página:

assertTrue(topicosrecentes.isDisplayed());

  • Validar se o nome do elemento contém o texto:

assertTrue(menusobre.getText().contains(“SOBRE”));

  • Validar se o nome do elemento é igual o texto:

assertTrue(tagwebdriver.getText().equals(“Webdriver”));

Lembrando que existem vários outros tipos de validações em Java.

Criando o script de test

Com a combinação das três classes acima, podemos começar a criar o primeiro caso de teste, que será encontrar os elementos Menu Sobre, Tag WebDriver e Tópicos Recentes do blog TakeTest.

Para os nossos testes, utilizaremos algumas bibliotecas, que deverão ser importadas nos testes como exemplificado abaixo:

Figura 3 – Bibliotecas que serão utilizadas nos testes


Após importarmos as bibliotecas, colocaremos o método setUp() dentro da nossa classe principal, para acessar o site do blog através do Firefox todas as vezes em que algum teste for executado como demonstrado na figura 4.

A variável “driver” no exemplo abaixo aponta qual navegador usaremos para os testes como descrito na primeira linha. A partir dessa informação, poderemos setar as configurações do navegador e para qual site ele irá apontar, conforme descrito nas linhas 2 e 3 abaixo:

Figura 4 – Abrindo a página do blog


Agora precisamos do “meio” através do qual iremos localizar os elementos. Para isso, basta abrir o blog no Firefox, acionar o botão F12, acionar o botão “Inspecionar Elemento” 
e clicar sobre o link/botão/texto pretendido. Para o Menu Sobre, utilizaremos o ID “menu-item-19”, para a Tag WebDriver, a class tag-link-32 e para os Tópicos Recentes ID “recent-posts-2”.

Figura 5 - Exemplo de como pegar id no Firefox

Figura 5 – Exemplo de como pegar ID do elemento no Firefox


Após localizar os elementos acima, implementaremos o nosso código para a validação deles dentro do nosso primeiro Caso de Teste, conforme abaixo:

Figura 6 - Ações para encontrar os elementos

Figura 6 – Ações para encontrar os elementos


Logo que os elementos forem encontrados, atualizaremos a página através do código:

Figura 7 - Atualizar página

Figura 7 – Atualizar página


Para fechar o browser todas as vezes que cada teste for executado, incluiremos no final um método com a função driver.quit().

Figura 16 - Método para fechar página

Figura 8 – Para fechar página


Após ter seguido os passos acima, o nosso script de testes deverá ficar da seguinte forma:

Figura 8 - Script de teste completo

Figura 9 – Script de teste completo


Para execução dos testes, você deverá clicar em Run e seu teste deverá ser executado.

Figura 9 - Executar os testes

Figura 10 – Executar os testes


Após a execução dos testes, o Eclipse exibirá a informação com os resultados dos testes, como pode ser observado na imagem abaixo:

Figura 10 - Resultado dos testes

Figura 11 – Resultado dos testes


Pronto! Criamos o nosso primeiro script de teste. A partir deste, temos diversas variações de comandos e verificações que podemos realizar nos nossos próximos scripts.

Nos próximos posts, demonstraremos como instalar, configurar e um exemplo de testes no Microsoft Visual Studio na linguagem C#.

Até a próxima!