terça-feira, 15 de março de 2011

Desafio Selenium: Automatizando Soma Aleatoria

Olá Pessoal!
Estava entrando em um site que tinha um captcha simples: a soma de dois números inteiros.
Eu gostei, pois existem captchas que nem o Perna Longa iria enxergar as letras....

O que eu fiz? Fui logo vendo uma maneira de automatizar este simples captcha, e não é que funcionou?
Dai resolvi criar uma página com o "Desafio Selenium" (que nem é tão desafio assim!) :P

O desafio consiste em conseguir automatizar a página que eu criei de um 'captcha' que, quando a soma dos dois números for submetida correramente apresenta o texto 'correto' e quando não estiver correto apresenta 'errado'.
Claro que o script será criado com o resultado final de 'correto'.

Então, tentem criar um script no Selenium IDE para automatizar. A página dá umas dicas!

http://www.eliasnogueira.com/arquivos_blog/selenium/desafio/1desafio/

Solução!
Bem pessoal, a solução deste desafio já se encontra disponível!
Se você está vendo este post somente agora, tente fazer o desafio sem ver a resposta e o vídeo explicativo!

O link para a página do principal dos desafios é: http://www.eliasnogueira.com/arquivos_blog/selenium/desafio/

Vídeo explicativo


Abraços!

4 comentários:

Teste de Software disse...

package Teste;



import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;

public class TesteSoma extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://www.eliasnogueira.info/");
selenium.start();
}

@Test
public void testTestesoma2() throws Exception {

selenium.open("/arquivos_blog/selenium/desafio/soma.php");
String numero1 = selenium.getText("number1");
String numero2 = selenium.getText("number2");
String soma = selenium.getText("soma");
int resultado = Integer.parseInt(numero1) + Integer.parseInt(numero2);
selenium.type("soma", String.valueOf(resultado));
selenium.click("submit");
selenium.waitForPageToLoad("30000");
verifyTrue(selenium.isTextPresent("CORRETO"));
assertTrue(selenium.isTextPresent("CORRETO"));
}

@After
public void tearDown() throws Exception {
selenium.stop();
}
}

Anônimo disse...

package Teste;



import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;

public class TesteSoma extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://www.eliasnogueira.info/");
selenium.start();
}

@Test
public void testTestesoma2() throws Exception {

selenium.open("/arquivos_blog/selenium/desafio/soma.php");
String numero1 = selenium.getText("number1");
String numero2 = selenium.getText("number2");
String soma = selenium.getText("soma");
int resultado = Integer.parseInt(numero1) + Integer.parseInt(numero2);
selenium.type("soma", String.valueOf(resultado));
selenium.click("submit");
selenium.waitForPageToLoad("30000");
verifyTrue(selenium.isTextPresent("CORRETO"));
assertTrue(selenium.isTextPresent("CORRETO"));
}

@After
public void tearDown() throws Exception {
selenium.stop();
}
}

Elias Nogueira disse...

100%! Com o Sel RC é sempre mais fácil... rs

Adelino P. Mazuti disse...

Elias mando bem cara desafio muito bom, como sou iniciante não consegui, mais tava quase, meu problema foi não saber como que o Selenium pegava o valor das variaveis....vlw mesmo ajudou muito... bora pro proximo desafio!!!