Com vocês, Selenium! (parte2)
Bom, como no último post mostrei o passo a passo de como configurar um ambiente de teste java para desenvolver e rodar os testes do selenium, é hora de esclarecer algumas particularidades.
Antes de mais nada, se você não tem conhecimento sobre java, ou só ouviu falar, PARE AGORA.
Não adianta sair empurrando com a barriga e pedir ajuda sem ao menos saber o que significa “instanciar uma classe”. Para te ajudar, alguns alunos do IBTA prepararam algumas vídeos aulas com o BÁSICO do BÁSICO da linguagem java bem mastigada. Assista antes de continuar
Como o selenium é uma biblioteca, um framework, ele contem funções (métodos) próprios e de terceiros como o JUnit. É preciso estar ciente disso pois, no futuro, se der algum conflito de biblioteca, vocês já sabem o que fazer (falarei isso mais para frente).

Primeiro vamos dissecar um código exportado do selenium IDE (depois de gravar o seu teste, dentro da janela do selenium IDE , clique em Opções > Formato Java (Junit) e depois clicar na aba Código Fonte).
** Peço para pegar a versão para JUnit porque a versão gerada para o TestNG não funciona já que atualmente a classe “SeleneseTestNgHelper” non-existe .****
Segue um exemplo de código gerado pelo selenium IDE em java:
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class Untitled 2 extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://www.google.com.br/", "*chrome");
}
public void testUntitled 2() throws Exception {
selenium.open("/");
selenium.click("btnG");
verifyTrue(selenium.isTextPresent("leonardobg.blog.com/"));
selenium.click("link=Java, Selenium e Coca Cola");
selenium.waitForPageToLoad("30000");
verifyTrue(selenium.isTextPresent("Java, Selenium e Coca Cola"));
}
}
Isto é mais ou menos o código que vocês teriam se instalassem o selenium IDE agora e gravassem um teste qualquer pegando o código fonte gerado.
E como diria nosso famoso amigo Jack (para os íntimos), vamos por partes:
O selenium IDE supõe que você esteja trabalhando com pacotes dentro do seu projeto, porém vem com ele em branco. Caso você queria usar essa função, dentro do selenium IDE vá em Opções > Opções e dentro da aba Formatos, clique em Java (JUnit) e altere o nome do pacote.
Para quem está iniciando, é bom que não altere mais nada pois o mesmo já está redondinho para ser usado.
import java.util.regex.Pattern;
Aqui está o “coração” do selenium com todas as funções –> com.thoughtworks.selenium.*;
public void setUp() throws Exception {
setUp("http://www.google.com.br/", "*chrome");
Nesta parte declaramos o nome da classe (vem como padrão “Untitled” quando o projeto não esta salvo no Selenium IDE), sendo ela uma extensão de “SeleneseTestCase” (sendo assim, “SeleneseTestCase” é superclasse e a sua seria uma “subclasse”).
Para quem esta começando,o “SeleneseTestCase” é uma mão na roda, pois nesta superclasse já está instanciado o “selenium”, é definido o proxy que o selenium vai usar, a porta, e você simplesmente roda seus testes.
Com o tempo você vai perceber ela não ajuda tanto e algumas vezes até atrapalha quando você for fazer coisas mais avançadas, mas por enquanto vamos ficar com ela.
Depois vem o método setUp() que define a pagina padrão onde começarão seus testes, e depois a configuração usada.
!Não confundir a configuração do Firefox *chrome com o Google Chrome!
selenium.open("/");
selenium.click("btnG");
verifyTrue(selenium.isTextPresent("leonardobg.blog.com/"));
selenium.click("link=Java, Selenium e Coca Cola");
selenium.waitForPageToLoad("30000");
verifyTrue(selenium.isTextPresent("Java, Selenium e Coca Cola"));
}
Aqui vem o recheio do bolo, com o passo a passo do seu teste.
Procurem entender +- como funciona com o seguinte exemplo: selenium.click(“btnG”);
Selenium = Classe Instanciada
Click = Metodo de Selenium
(“btnG”) = Parâmetro que o método precisa
Compreendendo desta forma, você poderá customizar seus testes de uma maneira mais dinâmica e que tenha mais flexibilidade para seu projeto.
Próximo post: Rodando seu Teste com TESTNG.