[CEJUG] PROBLEMAS AO INSERIR REGISTROS NOS TESTES SELENIUM IDE COM MASCARA JQUERY NO

224 views
Skip to first unread message

Paulo Henrique

unread,
Oct 28, 2014, 9:22:22 AM10/28/14
to ce...@googlegroups.com
Bom dia Pessoal!

Estou com o seguinte problema:
Possuo um projeto java + Richfaces, onde estou precisando montar um ambiente de testes automatizados com selenuim.
No primeiro momento estou desbravando a ferramenta Selenium IDE, entretanto estou com alguns problemas no momento de inserir registros 
nos testes. Problemas estes devido ao fato de possuir campos imputs que possuem mascaras JQuery.
No momento da inserção nos testes a mascara não é reconhecida, desta forma está sendo inserido apenas espaços e em outras vezes é inserido apenas a própria mascara.
Agradeço caso alguém possa ajudar!

Input no XHTML:

<h:inputText id="telefoneMonitoramento" value="#{clienteBean.entity.telefoneMonitoramento}" >
<rich:jQuery selector="#telefoneMonitoramento" query="mask('(99) 9999-9999')" timing="onload" />
</h:inputText>


Code gerado Selenuim IDE:

<tr>
<td>click</td>
<td>id=telefoneMonitoramento</td>
<td>"Aqui fica o numero do telefone"</td>
</tr>

--
Att,
Paulo Henrique Dantas de Sousa,
Desenvolvedor Java - Check Rota.


"Pouco conhecimento faz com que as pessoas se sintam orgulhosas. 
Muito conhecimento, que se sintam humildes. É assim que as espigas sem 
grãos erguem desdenhosamente a cabeça para o céu, enquanto que as cheias 
as baixam para a terra, sua mãe."

-Leonardo da Vinci

Flavio Cysne

unread,
Oct 28, 2014, 9:34:00 AM10/28/14
to ce...@googlegroups.com
Paulo,

    o código final, executado, é em HTML ou em Java?

    A máscara deveria ser resolvida pelo próprio jQuery durante o preenchimento dos campos do formulário.
    No Java o código utilizaria o método sendKeys com o número do telefone, sem máscara.

    Se o registro está sendo inserido, eu acredito que o elemento HTML esteja sendo encontrado pelo Selenium.
    Mas pode ser que não esteja, então vai a segunda sugestão: o JSF costuma colocar os IDs dos elementos dentro de formulários no formado FORMID:ELEMENTID, então pode ser que o Selenium não encontre o elemento HTML utilizando apenas o ID definido no código XHMTL (código fonte e não o HTML final gerado pelo JSF).


--
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.

Paulo Henrique

unread,
Oct 28, 2014, 10:03:33 AM10/28/14
to ce...@googlegroups.com
Bom dia Flavio!
Obrigado por esclarece.


Segue respostas:

   "O código final, executado, é em HTML ou em Java?"

- Você diz dentro do selenium IDE?
Se for em HTML, se não é em java mesmo na aplicação.

    " A máscara deveria ser resolvida pelo próprio jQuery durante o preenchimento dos campos do formulário.
    No Java o código utilizaria o método sendKeys com o número do telefone, sem máscara."

- Entendi perfeitamente o que você quis dizer. É isso mesmo!

     "Se o registro está sendo inserido, eu acredito que o elemento HTML esteja sendo encontrado pelo Selenium.
    Mas pode ser que não esteja."
      
     "Então pode ser que o Selenium não encontre o elemento HTML utilizando apenas o ID definido no código XHMTL"

- Essa é uma boa questão, mas será que eu precisarei tratar diretamente no código gerado pela IDE, ou precisarei de alguma extensão do Selenium?

Flavio Cysne

unread,
Oct 28, 2014, 10:23:33 AM10/28/14
to ce...@googlegroups.com

- Essa é uma boa questão, mas será que eu precisarei tratar diretamente no código gerado pela IDE, ou precisarei de alguma extensão do Selenium?


O que quis dizer é que no código Java, para que o Selenium ache o elemento HTML na página você talvez tenha que usar o ID gerado na paǵina HTML exibida no navegador. A questão é que como o Selenium IDE (imagino que seja o plugin do navegador) gerou o código utilizando apenas o ID do elemento, então esse deva ser o ID do HTML realmente exibido no navegador.

Como isso (usar apenas o ID definido no XHTML no HTML final) não é o padrão do JSF (eu estaria esperando que fosse "cadastroForm:telefoneMonitoramento"), eu sugeriria você verificar o código fonte da página HTML (a que é apresentada no navegador) para ter certeza que os IDs batem.

No mais, esse tópico aqui pode te ajudar com esse problema: https://groups.google.com/forum/#!topic/webdriver/_3iv_paFg4o

Paulo Henrique

unread,
Oct 28, 2014, 10:34:37 AM10/28/14
to ce...@googlegroups.com
Obrigado Flávio entendi.

Agora irei inspecionar o html gerado para a minha página.  :)

--
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.

Paulo Henrique

unread,
Oct 28, 2014, 11:01:31 AM10/28/14
to ce...@googlegroups.com
Perfeito Flávio, sua colocação faz todo sentido!

Conferi os id's na página HTML e no arquivo XHTML e todos batem.

Verifiquei o tópico que me indicou e acredito que daquela forma resolveria.
O grande problema é que estou utilizando o Selenium IDE para estes testes.
Como sou iniciante e não tenho muito conhecimento, não entendo as limitações do Selenium IDE.
Seria o caso utilizar o Selenium WebDriver ao invés do IDE?  :( 

Agradeço a atenção!

igor josé brilhante rios

unread,
Nov 21, 2014, 1:11:23 PM11/21/14
to ce...@googlegroups.com
Prezado paulinhoflf,
passei por esse mesmo problema aqui na empresa, resolvi da seguinte maneira:
criei um Store com o seguinte value javascript{this.browserbot.getCurrentWindow().document.getElementById('formUsuarios:cpfUsuario').value='21544362420'}.

Att,

Henrique Luz

unread,
Nov 21, 2014, 1:48:40 PM11/21/14
to ce...@googlegroups.com
Oi Paulo,

O Selenium IDE só roda através de um plugin do Firefox, logo não é possível testar em outros browsers.
Utilizando o Selenium WebDriver você tem um melhor controle do seu código de testes, já que o Selenium IDE gera automaticamente e fica bem poluído.
Uma grande vantagem é a possibilidade de utilizar Selenium junto com o JBehave, o que facilitaria a sua escrita de testes, já que você(ou alguém que entendesse o negócio) utilizaria uma linguagem mais clara para descrever seus cenários e como eles devem se comportar, logo a escrita de testes é mais confortável para o desenvolvedor e já serviria como validação.

Bem, a priori creio que seja isso, se alguém puder acrescentar mais alguma coisa seria interessante.
Qualquer dúvida é só perguntar.

Ps. Utilizar Selenium para testar seu projeto Richfaces vai lhe dar um bom trabalho.

Att,


--
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Henrique Luz
Developer

github: /henriqueluz

Reply all
Reply to author
Forward
0 new messages