Arquitectura de Selenium WebDriver

Arquitectura de Selenium WebDriver

Selenium WebDriver API proporciona facilidad de comunicación entre idiomas y navegadores, en este articulo explicaremos cómo es la arquitectura de selenium webdriver y cómo funciona internamente.

Selenium es compatible con muchos lenguajes de programación como Java, C #, Python, etc., y también es compatible con múltiples navegadores como Google Chrome, Firefox, Internet Explorer, etc.

La siguiente imagen representa la arquitectura de selenium webdriver.

Arquitectura Selenium Webdriver

Hay cuatro componentes básicos de la arquitectura de Selenium WebDriver:

  • Librerías cliente de Selenium
  • Protocolo JSON Wire
  • Drivers  de los navegadores
  • Navegadores reales

Librerías cliente de Selenium/Enlaces de lenguaje de Selenium

Selenium admite varias bibliotecas, como Java, Ruby, Python, etc., los desarrolladores de Selenium han desarrollado enlaces de idiomas para permitir que Selenium admita varios idiomas.

Por ejemplo, si desea usar el driver del navegador en java, use los enlaces de java. Todos los enlaces de idiomas admitidos se pueden descargar desde el sitio web oficial (https://www.seleniumhq.org/download/#client-drivers) de Selenium.

Protocolo JSON Wire

JSON (JavaScript Object Notation) es un estándar abierto para el intercambio de datos en la web. Es compatible con estructuras de datos como objetos y matriz. Por lo tanto, es fácil escribir y leer datos de JSON. Para obtener más información sobre JSON, visite https://www.javatpoint.com/json-tutorial

JSON Wire Protocol es una API REST que transfiere la información entre el servidor HTTP. Cada BrowserDriver (como FirefoxDriver, ChromeDriver, etc.) tiene su propio servidor HTTP.

JSON Wire Protocol proporciona un mecanismo de transporte para transferir datos entre un servidor y un cliente. JSON Wire Protocol sirve como un estándar de la industria para varios servicios web REST.

Driver del navegador

Selenium utiliza drivers/controladores, específicos para cada navegador para establecer una conexión segura con el navegador sin revelar la lógica interna de la funcionalidad del navegador. El controlador del navegador también es específico del idioma utilizado para la automatización, como Java, C #, etc.

Cuando ejecutamos un script de prueba con WebDriver, las siguientes operaciones se realizan internamente.

  • La solicitud HTTP se genera y se envía al controlador del navegador para cada comando de Selenium.
  • El controlador recibe la solicitud HTTP a través del servidor HTTP.
  • El servidor HTTP decide todos los pasos para realizar las instrucciones que se ejecutan en el navegador.
  • El estado de ejecución se envía de vuelta al servidor HTTP, que posteriormente se envía al script de automatización.

Navegadores

Los navegadores soportados por Selenium WebDriver:

  • Internet Explorer
  • Mozilla Firefox
  • Google Chrome
  • Safari

¿Cómo funciona internamente Selenium WebDriver?

Escribe un código en algún IDE de desarrollo (por ejemplo, Eclipse IDE) utilizando cualquiera de las librerías de cliente que nos ofrece Selenium (por ejemplo, Java).

WebDriver driver  = new FirefoxDriver();
driver.get(https://www.tutorialselenium.com)

Una vez que esté listo con su script, Ejecute el script. Basado en las declaraciones anteriores, el navegador Firefox se iniciará y navegará hacia el sitio web Tutorial Selenium.

Aquí vemos lo que ocurrirá internamente después de hacer clic en Ejecutar hasta el lanzamiento del navegador Firefox.

Una vez que haga clic en Ejecutar, cada declaración en su script se convertirá como una URL con la ayuda de JSON Wire Protocol sobre HTTP. Las URL se pasarán a los controladores/drivers del navegador. (En el código anterior, tomamos FirefoxDriver). Aquí, en nuestro caso, la biblioteca cliente (java) convertirá las declaraciones del script a formato JSON y se comunicará con el FirefoxDriver. La URL se ve como se muestra a continuación.

http://localhost:8080/{"url":"https://www.tutorialselenium.com"}

Cada driver del navegador utiliza un servidor HTTP para recibir solicitudes HTTP. Una vez que la URL llegue al driver del navegador, el driver del navegador pasará esa solicitud al navegador real a través de HTTP. Luego los comandos de su script de Selenium se ejecutarán en el navegador.

Si la solicitud es POST , habrá una acción en el navegador.

Si la solicitud es una solicitud GET , la respuesta correspondiente se generará en el extremo del navegador y se enviará a través de HTTP al controlador del navegador y al controlador del navegador a través del protocolo JSON Wire y se enviará a la interfaz de usuario (Eclipse IDE).

Esto es todo sobre Selenium WebDriver Architecture. No olvides visitar nuestro Tutorial de Selenium WebDriver

Compartir artículo

Leave Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.