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:

  1. 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();
    }
    }

    ResponderExcluir
  2. 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();
    }
    }

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

    ResponderExcluir
  4. 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!!!

    ResponderExcluir