Selenium IDE - Dicas para testar aplicações Ajax e Portal
Estou fazendo alguns trabalhos com o Selenium IDE para automação de testes funcionais de sites WEb. Aí vai uma dica muito interessante para quem trabalha com sites que usam pesadamente AJAX, portlets, javascripts e HTML dinâmico.
Podem-se encontrar em sites que usam AJAX, Portlets e DHTML alguns controles que possuem variação dinâmica em seu identificador. Veja, por exemplo, o ID desse controle gerado pela especificação de portlets Pluto:
id="Pluto_8A828179268FE1FD01268FE6FB8302AE__SELECTED_client_code"
Ao utilizar o Selenium IDE para gerar o script de teste automatizado, obtemos o seguinte comando em Selenese HTML:
type Pluto_8A828179268FE1FD01268FE6FB8302AE__SELECTED_client_code
O grande problema é que esse número muda de forma constante e aleatória. Como podemos tornar nosso teste no Selenium mais estável? Usando o comando contains dentro do XPath !
O comando modificado fica assim:
type //select[contains(@id,"Pluto_") and contains(@id, '_SELECTED_client_code')]
Fazendo essa pequena alteração obtemos scripts que conseguem trabalhar com identificadores dinâmicos que mudam aleatoriamente, algo comum em aplicações AJAX ou de portais . Uma dica fundamental para melhor uso do Selenium IDE.

1 Comentários:
Olá José, belo post! Um dos grandes problemas de automatizar apps web são esses ids dinamicos. Agora tô com um duvida, aqui na app q tô testando os links tem ids que são variaveis seguindo esse esquema: listaFormIndex:formLista:Detalhe:7:j_id91
listaFormIndex:formLista:Detalhe:7:j_id95
No comando selenium.click("id") como devo referenciar esse id, sabendo que só o que muda é o numero no final, neste caro : j_id95, 99, 98
Postar um comentário
<< Home