Post

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...

By Luiz Gustavo Schroeder Vieira Vou compartilhar uma solução bem simples que descobri para tratar Modal Panels com o Selenium. Na verdade a solução é bem fácil mas como eu quebrei a cabeça com até chegar nesse ponto, acho interessante repassar pois outros podem utilizar esse mesmo tempo para descobrir e compartilhar outras soluções. Descobri conversando com outros profissionais da área tais como Elias Nogueira e uns colegas da Índia e Singapura, através de fóruns e listas de discussão sobre Selenium e Java e outros.Para este caso, é importante levar em consideração três etapas importantes:- O próprio Selenium IDE já gera essa linha de código, mas é interessante entender o motivo pelo qual ele insere o mesmo:driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);Esse trecho de código é utilizado para o Selenium “esperar” o browser durante 20 segundos (ou quantos segundos o usuário desejar) enquanto o elemento desejado não aparece na tela. Então, só depois desses 20 segundos o elemento ficaria disponível.- Pode-se mapear o Modal Panel e utilizá-lo como referência para procurar o objeto daquela tela, como por exemplo:WebElement modalPanel = driver.findElement(By.id(“idDoElemento”));WebElement dsArquivo = modalPanel.findElement(By.xpath(“xpathDoElemento”));- Ou, caso a solução acima não atenda, sugiro acessar diretamente a URL (mapeando esta através de um Firebug da vida) e acessar o arquivo diretamente. Como por exemplo:// Preencher URLdriver.get(“http://URL.com.br/sistema”);// Mapear campos da telaWebElement login = driver.findElement(By.id(“username”));WebElement password = driver.findElement(By.id(“password”));WebElement submit = driver.findElement(By.cssSelector(“input.formSubmit”));// Preencher usuário//senha e clicar em Enterlogin.sendKeys(“teste”);password.sendKeys(“teste”);submit.click(); // Navega até a tela Cria Minuta de Documentodriver.findElement(By.linkText(“linkDaTela”)).click();driver.findElement(By.xpath(“xPathDoLink1”)).click();driver.findElement(By.xpath(“xPathDoLink2”)).click();// Tela do modal panel// Acessar diretamente a URL do modal paneldriver.get(“http://URL.com.br/sistema/modalpanel&blablabla?=usuario=testeblabla”);WebElement campo1 = driver.findElement(By.xpath(“xpathDoCampo1”));String textoTeste = “teste123”;campo1.sendKeys(textoTeste);Espero ter ajudado!

Source: http://www.testavo.com.br/2011/09/selenium-webdriver-utilizando-rich.html

Você também pode querer ler

Comments are off for this post.