Selenium vs Watir

Hace poco comencé con un proyecto en el cual estoy armando un framework de automatización, donde hay algunos objetivos (por suerte) bastante claros a cumplir. Algunas otras cosas, las voy proponiendo por distintas consideraciones que voy haciendo que creo que son las mejores para el equipo. Una de las cosas que estoy viendo y es la que quiero discutir acá (a ver si alguien tiene algo para aportar a esa discusión) es la herramienta de automatización a utilizar, y estoy entre dos: Selenium vs Watir.

Por un lado Selenium me parece la opción más natural, la herramienta open source más popular para automatizar web. Es el estandar de facto. El tema es que al conversarlo a la interna de Abstracta, la recomendación que me hicieron es que para Ruby estaba mejor Watir, con lo cual me puse a investigar un poco más. Antes de entrar en la comparación, me gustaría comentar el por qué la elección del lenguaje.

Lenguaje

Si fuera por mí, programaría en Java, ya que es en lo que tengo más experiencia, pero el equipo programa en Ruby. Como me gustaría que a futuro los desarrolladores puedan llegar a considerar la automatización como un elemento que les aporte valor a ellos y lo puedan extender, mantener, mejorar, usar, etc., preferí trabajar con Ruby. Creo que si bien la automatización, cuando uno trabaja con un enfoque de caja negra, no tiene dependencia con el código del sistema. De todos modos, este argumento creo que no es menor, que todos deberíamos buscar hacer equipo con los desarrolladores, y no ir por nuestro rumbo con nuestro stack tecnológico aparte del equipo.

Herramienta de automatización: Selenium vs Watir

Me puse a investigar un poco, con foco en herramientas de automatización web para Ruby, open source, y que se puedan integrar con Cucumber para poder pensar a futuro en BDDBrowserStack o SauceLabs para poder hacer cross-browser testing, y con Applitools para visual testing. Acá les dejo una pequeña tabla comparativa. Ya de paso, agregué Capybara al análisis, que también estuvo sobre la mesa (aunque con menos fuerza). 

Watir Capybara Selenium
Language Approach Object oriented DSL Object oriented
Original release 2008 2009 2004
Popularity today Worst 2nd best Best
Active? Last release 2 weeks ago 1 month ago 2 month ago
Ease to maintain test cases 1st (uses Selenium under the hood, providing a better API) Worst (read discussion) 2nd position, very similar to Watir
Cucumber Integration Yes Yes Yes
BrowserStack and SauceLabs integration Yes Yes Yes
Page Object pattern Yes Yes Yes
Browsers Chrome

Firefox

Edge

Internet Explorer

Safari

Uses different drivers, including Selenium, so I guess that the same browsers are supported. Firefox latest releases.

Internet Explorer 7-11.

Safari 5.1+

Opera

Chrome

Edge

Headless browsers Yes Yes Yes
Locators Id, Name, CSS selectors, XPath Id, Name, CSS selectors, XPath Id, Name, CSS selectors, XPath

Conclusión

Mi conclusión, por ahora, es que no hay grandes diferencias. Si bien arranqué con ganas de entrarle a Watir hay otros factores que me están haciendo pensar en cambiar a Selenium:

  • Mejor soporte (mayor comunidad implica más foros, más recursos, ejemplos, problemas resueltos).
  • Es más probable conseguir a alguien con experiencia en Selenium que en Watir (aunque sabiendo uno tampoco cuesta tanto aprender el otro).
  • Más popular, más aceptada. Cada vez que le cuento a alguien que voy a usar Watir le termino diciendo “es algo similar a Selenium”. Sería más natural usar directamente Selenium.
  • La diferencia de Watir por lo cual me lo recomendaron, que tiene una API que hace que sea más fácil de leer, tampoco me queda tan claro que sea tanto más fácil.

Por ahora estoy por cambiar a Selenium, ya que estoy en el momento correcto para tomar la decisión sin que implique un cambio importante, pero quería saber si alguien tiene algo más para sumar a la conversación.

2 thoughts on “Selenium vs Watir

  1. David says:

    La diferencia está entre Watir Classic y el actual Watir que trata de alinearse a Selenium / W3C Webdriver, el anterior Watir tenía resuelto un montón de cosas que hoy en día selenium aún no ha resuelto, ya que ahora la movida es que sea la implementación de w3c de webdriver de cada browser, y lamentablemente los browsers no están trabajando fuerte en ello. Que la mayoría de los frameworks estén migrandose a selenium y w3c webdriver es un buen push para que los browsers se pongan las pilas, pero aún lamentablmente le falta.
    Si tu sitio web es simple y necesitas interactividad simple, sin nada complejo puedes resolverlo con selenium y muchas veces más que alguna ejecución por javascript te sacará de apuros para implementar alguna cosita que selenium no soporte, y otro tipo de cosas… a esperar a que terminen de implementarlas.

    1. Federico says:

      Grande David! gracias por el aporte!

Leave a Reply

Your email address will not be published. Required fields are marked *