Pergunta

Estou testando uma aplicação web baseada em extjs com robotframework e selenium2library, mas não consigo localizar alguns elementos contidos em um componente de tabela.A selenium2library tem uma palavra-chave chamada Execute javascript, então quero saber como posso executar javascript, por exemplo, como posso executar o código js:

var a=document.getElementById('ext-comp-1155').getElementsByTagName("button");
a[0].click();

Alguém tem experiências bem-sucedidas de testes automatizados de páginas da web baseadas em extjs?Qualquer ajuda seria apreciada.

Foi útil?

Solução

Você deve ser capaz de executar o javascript assim

  Execute Javascript var a=document.getElementById('ext-comp-1155').getElementsByTagName("button"); a[0].click(); 

Ou sejaEmbora existam várias instruções no javascript, você pode fornecê-las em um único argumento, desde que os pontos e vírgulas estejam no lugar.

Isso pode ser um pouco mais legível assim:

 ${button clicker}=  document.getElementById('ext-comp-1155').getElementsByTagName("button")[0].click() 
 Execute Javascript  ${button clicker} 

Outras dicas

Se você não está limitado ao Selenium, você pode querer dar uma olhada RIATest.

A versão 5.0 oferece suporte total aos testes ExtJS.Os widgets ExtJS UI são cidadãos de primeira classe no RIATest.Isso significa que, diferentemente de outras ferramentas de teste HTML, você não precisa escrever testes que manipulem os elementos HTML DOM.Os testes no RIATest operam em termos de widgets ExtJS UI.

Exemplos de scripts RIATest que funcionam com widgets ExtJS:

Os seguintes cliques em um botão ExtJS com o rótulo "Próxima página":

ExtButton("Next Page")=>click();

E o seguinte arrasta e solta uma linha de uma árvore ExtJS para outra:

ExtRow("Controller.js")=>dragAndDropTo(ExtTreePanel("#tree2")->ExtRow("Custom Ext JS"));

E isso recolhe o cabeçalho de uma caixa ExtJS:

ExtBox("Feeds")->ExtHeader("FeedsВ")->ExtCollapser()=>click();

(Todo o código de exemplo acima é de scripts de teste reais executados em aplicativos de exemplo ExtJS).

O RIATest também sabe quando esperar automaticamente que o ExtJS AJAX termine, portanto, se sua UI fizer download de conteúdo dinâmico, os testes esperarão automaticamente até que os dados sejam recebidos do servidor.

(Isenção de responsabilidade:Sou membro da equipe RIATest).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top