No dijo lo que no le gustaba de Selenium, pero supongo que tiene confianza con JavaScript, por lo que mi recomendación sería usar CasperJS como herramienta principal. Funciona bien con aplicaciones web de una página, y viene con su propia herramienta de prueba. El código aún puede ser un poco complicado a veces, cuando se utilizan cláusulas wait
anidadas; ocúpese de eso asegurándose de que no intente hacer demasiado en cada prueba, y si aún es complejo, refactorícese. Y no se olvide de diseño para prueba: si su selector es terriblemente complejo, considere agregar un <span id="xxxx">...</span>
a su alrededor, para que sus pruebas puedan ir directamente a él.
Puede usar CasperJS con PhantomJS y SlimerJS. Mi preferencia es para SlimerJS actualmente, como:
- PhantomJS 1.x se ha quedado atascado en un viejo WebKit (equivalente a Safari 5.1 y Chrome 13), por lo que someter a prueba las características más modernas es frustrante.
- SlimerJS puede funcionar con el motor Gecko o directamente con una versión de Firefox que haya instalado. Esto le permite configurar un perfil de Firefox con complementos adicionales, certificados de seguridad, etc.
- SlimerJS está escrito en JavaScript, por lo que es más fácil hackearlo si lo necesita.
Una vez PhantomJS 2.0 sale (en torno a finales de 2013, es de esperar), o si su sitio no se basa en ninguna API últimos HTML5, puede ejecutar CasperJS dos veces, para conseguir una doble cobertura. (Por cierto, PhantomJS es naturalmente sin cabeza; SlimerJS necesita utilizar Xvfb, que es Linux o Mac solamente.)
Lo Selenium le da extra se puede controlar otros navegadores, es decir, en particular. (Aunque, por supuesto, para IE necesita ejecutar una máquina con Windows.) El selenio, al igual que SlimerJS, necesita que Xvfb sea sin cabeza (nuevamente, excluyendo Windows). (Por cierto, los documentos de Selenium on supported browsers no se han actualizado en años, pero asumo que las versiones posteriores de cada navegador tienen al menos el mismo soporte que se muestra allí).
El primer punto en contra de Selenium es su velocidad. Es muy lento. – user337620
@ user337620 Mis scripts de Selenium están dominados por el acceso a la red, por lo que nunca los he percibido como lentos, excepto para la puesta en marcha. Me di cuenta de que su pregunta era agosto del año pasado, ¡no este año! ¿A qué terminaste yendo, y estás feliz con eso? –
Usé CasperJS con PhantomJS. Echaré un vistazo a SlimerJS también. – user337620