Selenium es una poderosa herramienta para controlar el navegador web a través del programa. Es funcional para todos los navegadores, funciona en todos los principales sistemas operativos y sus scripts están escritos en varios lenguajes, es decir, Python, Java, C#, etc. Trabajaremos con Python. Selenium tiene cuatro componentes principales: Selenium IDE, Selenium RC, Selenium Web driver, Selenium GRID.
Componentes del selenium
Selenium ha estado en la industria durante mucho tiempo y es utilizado por probadores de automatización en todo el mundo.
Revisemos los cuatro componentes principales de Selenium:
IDE de selenium
Selenium IDE (Entorno de desarrollo integrado) es la herramienta principal de Selenium Suite. Es un completo entorno de desarrollo integrado (IDE) para pruebas de Selenium. Se implementa como complemento de Firefox y como extensión de Chrome. Permite la grabación, edición y depuración de pruebas funcionales. Anteriormente se conocía como Selenium Recorder. Selenium-IDE fue creado originalmente por Shinya Kasatani y donado al proyecto Selenium en 2006. Selenium IDE anteriormente tenía poco mantenimiento. Selenium IDE comenzó a recibir mantenimiento activo en 2018.
Los scripts se pueden grabar y editar automáticamente de forma manual, lo que proporciona compatibilidad con el autocompletado y la capacidad de mover los comandos rápidamente. Las secuencias de comandos se graban en selenese, un lenguaje de secuencias de comandos de prueba especial para Selenium. Selenese proporciona comandos para realizar acciones en un navegador (haga clic en un enlace, seleccione una opción) y para recuperar datos de las páginas resultantes.
Selenium RC (control remoto)
Selenium Remote Control (RC) es un servidor, escrito en Java, que acepta comandos para el navegador a través de HTTP. RC hace posible escribir pruebas automatizadas para una aplicación web en cualquier lenguaje de programación, lo que permite una mejor integración de Selenium en los marcos de pruebas de unidades existentes. Para facilitar las pruebas de escritura, el proyecto Selenium actualmente proporciona controladores de cliente para PHP, Python, Ruby, .NET, Perl y Java. El controlador Java también se puede utilizar con JavaScript (a través del motor Rhino). Se necesita una instancia del servidor Selenium RC para iniciar el caso de prueba html, lo que significa que el puerto debe ser diferente para cada ejecución paralela. Sin embargo, para el caso de prueba de Java/PHP, solo una instancia de Selenium RC debe estar ejecutándose continuamente.
Controlador web de selenium
Selenium WebDriver es el sucesor de Selenium RC. Selenium WebDriver acepta comandos (enviados en selenese o a través de una API de cliente) y los envía a un navegador. Esto se implementa a través de un controlador de navegador específico del navegador, que envía comandos a un navegador y recupera los resultados. La mayoría de los controladores de navegador inician y acceden a una aplicación de navegador (como Firefox, Google Chrome, Internet Explorer, Safari o Microsoft Edge); también hay un controlador de navegador HtmlUnit, que simula un navegador usando el navegador HtmlUnit sin interfaz gráfica de usuario.
Selenium WebDriver no necesita un servidor especial para ejecutar pruebas. En cambio, WebDriver inicia directamente una instancia de navegador y la controla. Sin embargo, Selenium Grid se puede usar con WebDriver para ejecutar pruebas en sistemas remotos (ver más abajo). Siempre que sea posible, WebDriver utiliza la funcionalidad del nivel del sistema operativo nativo en lugar de los comandos de JavaScript basados en el navegador para controlar el navegador. Esto evita problemas con diferencias sutiles entre los comandos nativos y de JavaScript, incluidas las restricciones de seguridad.
Rejilla de selenium
Selenium Grid es un servidor que permite que las pruebas usen instancias de navegador web que se ejecutan en máquinas remotas. Con Selenium Grid, un servidor actúa como centro. Las pruebas se ponen en contacto con el concentrador para obtener acceso a las instancias del navegador. El concentrador tiene una lista de servidores que brindan acceso a las instancias del navegador (Nodes WebDriver) y permite que las pruebas usen estas instancias. Selenium Grid permite ejecutar pruebas en paralelo en varias máquinas y administrar diferentes versiones y configuraciones del navegador de forma centralizada (en lugar de en cada prueba individual).
La capacidad de ejecutar pruebas en instancias remotas del navegador es útil para distribuir la carga de las pruebas en varias máquinas y ejecutar pruebas en navegadores que se ejecutan en diferentes plataformas o sistemas operativos. Este último es particularmente útil en los casos en que no todos los navegadores que se utilizarán para las pruebas pueden ejecutarse en la misma plataforma.
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA