Con el fin de ahorrar tiempo y costes al desarrollar aplicaciones en Python, Jason Huggins creó en 2004 el JavaScriptTestRunner, el núcleo del marco de trabajo de pruebas de web que ahora se conoce como Selenium. Al principio, la herramienta se utilizaba solo de forma interna en la empresa de software ThoughtWorks, donde Huggins trabajaba en ese momento. Cuando se cambió a Google en 2007, Huggins continuó desarrollando y perfeccionando el programa, que pasó a ser de código abierto (licencia Apache 2.0) y, por lo tanto, se puso a disposición del gran público. Después de fusionarse con la API WebDriver, el marco de pruebas recibió el nombre de Selenium o Selenium WebDriver, que sigue vigente hoy en día.
La versión actual de Selenium está basada exclusivamente en HTML y JavaScript y permite a los desarrolladores probar y registrar las interacciones con una aplicación web y luego repetirlas las veces que se desee, de forma completamente automática. Los componentes más importantes para realizar este proceso de pruebas son los siguientes:
- Selenium Core: el módulo del núcleo contiene la funcionalidad básica del marco de trabajo, incluyendo el JavaScriptTestRunner y la API de comandos de prueba básicos.
- Selenium IDE: Selenium IDE es el entorno de desarrollo del marco de pruebas, sobre el que se basa la extensión IDE para Chrome y Firefox. Se utiliza para grabar y reproducir pruebas.
- Selenium WebDriver: WebDriver es la interfaz básica para simular las interacciones del usuario con cualquier navegador, ya sea Firefox, Chrome, Edge, Safari o Internet Explorer. Desde 2018, la API es un estándar W3C oficial.
- Selenium Grid: Selenium Grid es una extensión de WebDriver y de su predecesor Selenium Remote Control (RC), que permite la ejecución de pruebas en paralelo en múltiples servidores. De este modo, el tiempo de pruebas se reduce considerablemente.