Hoje irei enfatizar a minha solução para escrever código que manipule pop-ups javascript no Ruby WATIR, observando a discrepância que existe na programação para IE e para Firefox.
Fato: muitas aplicações que realizam processamentos server-side costumam apresentar seus resultados por via de pop-ups javascript (isto é muito comum quando utiliza-se AJAX).
O grande problema que ocorre é que, devido ao modo pelo qual WATIR se comunica com cada browser (IE usa a API do Windows e Firefox usa o plugin JSSH), as maneiras que cada uma destas soluções foram desenvolvidas têm naturezas distintas.
No post anterior 10 boas práticas em Ruby WATIR, a Boa Prática 5 - Isolar a discrepância entre IE e Firefox em métodos polimórficos usando o design pattern Strategy apresenta uma solução para este problema, utilizando um padrão de projeto GoF para favorecer isolamento de código e promover reutilização. Não vou repetir o post aqui, portanto verifique neste post a solução apresentada.
Observe que, ainda assim, mensagens pop-up javascript contendo texto são uma fonte de problemas quando se deseja compatibilidade plena entre IE e Firefox. Isto se dá pois cada browser manipula de forma diferente seus pop-ups, e ainda assim em momentos diferentes!
No post anterior 10 boas práticas em Ruby WATIR, a Boa Prática 7 - Evitar ter de manipular mensagens pop-up javascript enfatiza conseqüências e alternativas para isso.