Olá Pessoal!
Agora segue mais um Desafio Selenium, que agora consiste na edição de três dados básicos: nome, e-mail e telefone.
O intuito deste desafio não é a validação de campos e sim a automação da edição destes campos com o Selenium IDE, onde esta edição não atualiza a página (edição inline)...
Logo o que precisa ser feito é somente um clique sobre o item (nome, e-mail ou telefone), a alteração da informação e a persistência dela (clicar no botão 'Salvar'). Após isso é necessário a validação das informações adicionadas, para garantir que elas estarão lá!
Essa é bem fácil e, basicamente, conseguimos resolver com apenas um comando!
E esse comando não pode ser o pause!
http://www.eliasnogueira.com/arquivos_blog/selenium/desafio/index.html
Qualquer dúvida ou sugestões de desafios não deixe de comentar!
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/index.html
Vídeo explicativo
Abraços!
ótimo desafio!
ResponderExcluirApesar de falar que esse é mais fácil eu achei ele mais difícil que o primeiro.
Muito bom esses desafios! Da pra conhecer alguns dos "truques" do selenium antes de encontrá-los na prática.
Parabéns pela iniciativa. Vou fazer todos!
package Teste;
ResponderExcluirimport com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;
public class TesteCampo extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://www.eliasnogueira.info/");
selenium.start();
}
@Test
public void testECampos() throws Exception {
selenium.open("/arquivos_blog/selenium/desafio/index.html");
selenium.click("link=Efetuar uma edição em campos in-line");
selenium.waitForPageToLoad("30000");
selenium.click("name_rg_display_section");
selenium.type("nome_pessoa", "Beltrano de tal");
selenium.click("//input[@value='Salvar']");
Thread.sleep(5000);
if(selenium.isTextPresent("Beltrano de tals")) {
System.out.println("Elemento Nome Pessoa presente na tela !!!!\n");
} else {
System.out.printf("Elemento Nome Pessoa não presente na tela !!!!!\n");
}
selenium.click("email_rg_display_section");
selenium.type("email_value", "beltrano.detal@gmail.com");
selenium.click("//input[@value='Salvar' and @type='button' and @onclick=\"document.getElementById('email_hv_editing_section').style.display='none';document.getElementById('email_hv_saving_section').style.display='';var req = 'edicaoAjaxUpdate.php?part=email&val=' + document.getElementById('email_value').value;sndReq(req);\"]");
Thread.sleep(5000);
if(selenium.isTextPresent("exact:Email: beltrano.detal@gmail.com")) {
System.out.println("Elemento Email presente na tela !!!!\n");
} else {
System.out.printf("Elemento Email não presente na tela !!!!.");
}
selenium.click("phone_rg_display_section");
selenium.type("phone_value", "06132115545");
selenium.click("//input[@value='Salvar' and @type='button' and @onclick=\"document.getElementById('phone_hv_editing_section').style.display='none';document.getElementById('phone_hv_saving_section').style.display='';var req = 'edicaoAjaxUpdate.php?part=phone&val=' + document.getElementById('phone_value').value;sndReq(req);\"]");
Thread.sleep(5000);
if(selenium.isTextPresent("exact:Telefone: 06132115545")) {
System.out.println("Elemento Telefone presente na tela !!!!\n");
} else {
System.out.printf("Elemento Telefone não presente na tela !!!!\n");
}
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
Optei por informar erro no console ao invés do trace do junit, pois em caso de ocorrência nos primeiros testes a execução do restante continuará.
estou tentando me aprofundar em automação, lendo livros e buscando ferramentas... muito bom os desafios... servem como estimulo... espero que depois surjam tb pro selenium rc
ResponderExcluirOlá.
ResponderExcluirPrimeiramente parabens pela iniciativa adorei isso. Pode mandar o próximo. rsrs =P
Bem. A solução é simples. Segue:
open http://www.eliasnogueira.info/arquivos_blog/selenium/desafio/edicao.php
click name_rg_display_section
store Um Nome Qualquer nome
store email.qualquer@gmail.com email
store 16 9744-5566 tel
type nome_pessoa ${nome}
click //input[@value='Salvar']
waitForTextPresent ${nome}
click email_rg_display_section
type email_value ${email}
click //tr[6]/td/div/input[2]
waitForTextPresent ${email}
click //div[@id='phone_rg_display_section']/b
type phone_value ${tel}
click //tr[7]/td/div/b
waitForTextPresent ${tel}