Existe alguma maneira mais eficaz de fazer cross-browser ?

Eu escrevi esse tópico para ver se alguém conhece alguma maneira de fazer cross-browser com um código diferente a este:

http://azevedorafaela.wordpress.com/2014/06/03/implementing-cross-browser-with-selenium/

Interessante sua abordagem…

Não sei se usaria swtich e tantos import’s em uma classe só…
Dependendo de onde está rodando… pode comprometer um pouco a performance… e mesmo não fazendo teste “crossBrowser”… se vc re-usa a classe… vai acabar colocando todos os “drivers” na memoria… e ainda bem que eles eles não tem métodos recorrentes! rs

E eu também deixaria a classe como filha de uma classe pai que “controla” os testes… para não precisar ficar fazendo import novamente de coisas como:

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

… já para definir o tempo “Implicito” de espera, …meio iria para abordagem “dont repeat yourself”… veja que para cada case (browser) vc repete o seguinte código?

driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

Ta certo que para o firefox vc define 5 segundos e o restante vc define 0… então até faça sentido para seu cenário…mas pq não definir 5 segundos implícitos para todos?.. se a resposta é “rápida” para os outros browsers, esse tempo não vai fazer diferença :)

Espero ter ajudado.

Oi Leonardo, Obrigada pela resposta !!

Concordo com você !! Sobre os imports eu deixo ali só no blog, para efeito de informação quais os imports que eu estou usando.

Observando bem o Switch também não está fazendo sentido ali (Já vou retirar), esse código é um pouco antigo de quando não se rodava em todos, somente nos browsers que eram escolhidos. Essa classe eu só chamava uma vez, no início da automação, mas agora vai ter de ser chamada toda a vez que o cenário for finalizado com um browser, para começar com o próximo.

E o tempo de espera também vou dar uma arrumada.

Muito obrigada !! Se você tiver outra forma de realizar teste cross browser me passe por favor xD

Eu não tenho pq faz um tempinho que nao mecho com automação front end… logo não escrevi nada do tipo… mas vc poderia colocar esses códigos em um repositório github para a comunidade :)

Ahh ok, sim pode deixar xD

Obrigada !

Eu não vejo problema nenhum nos imports e no switch…

Não da problema nenhum de performance essa quantidade de imports explicitos. Se tivesse com imports como import org.openqa.selenium.;* isso poderia (mas não acontece) dar um pequeno problema de performance (imperceptivel para nós e que não influencia no teste).

O switch está correto também, mas o ideal (que é a idéia que pesquei do switch) é um Singleton (eu mesmo crio um Singleton para chamar os browsers).

Oi Elias, vi seu hangout de CasperJs com Selenium ainda ontem, inclusive esse cross-browser que eu quero fazer é headless browser. Mas por enquanto achei a sua solução do Singleton bem mais simples e direta do que um outro pessoal que me mandou no Linkedin. Muito obrigada, já havia falar sobre singleton, mas nunca cheguei a utilizar.

Eu concordo com singleton… só não concordo realmente ter os imports de todos os drivers na mesma classe sendo que provavelmente vc vai reutilizar ela.
Se você for deixar rodando em uma maquina virtual menos parruda… qualquer coisa que gaste menos memória é uma boa pratica (já esquecida atualmente…rsrsrs)

A respeito de headless browser… vc precisa saber qual engine de javascript roda em cada um…
basicamente phantomJS usa webkit (chrome, safari), o similarJS usa ghecko (firefox) e o triflejs que é um port do phantomjs para simular IE
ou usa direto o casperJS :)
Escreve um ai @Elias-Nogueira e libera no github pra galeris :)

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.