{"id":2079,"date":"2023-06-30T12:48:46","date_gmt":"2023-06-30T10:48:46","guid":{"rendered":"https:\/\/ittester.sk\/sin-categorizar\/selenium-webdriver-architecture\/"},"modified":"2024-06-25T16:04:56","modified_gmt":"2024-06-25T14:04:56","slug":"selenium-webdriver-architecture","status":"publish","type":"post","link":"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-de-selenio\/selenium-webdriver-architecture\/","title":{"rendered":"Selenium WebDriver &#8211; arquitectura del framework"},"content":{"rendered":"\n<p>En el post anterior sobre <a href=\"https:\/\/ittester.sk\/automatizovane-testovanie\/selenium-tutorial\/selenium-intro\/\" title=\"\">Selenium intro &#8211; una introducci\u00f3n<\/a>, conocimos los distintos componentes de Selenium, sus ventajas y sus limitaciones. Este tutorial se basa en el componente principal del conjunto de pruebas Selenium: Selenium Webdriver. Aqu\u00ed conoceremos la arquitectura del framework Selenium WebDriver, sus componentes individuales y, a continuaci\u00f3n, c\u00f3mo funciona.<\/p>\n\n<h2 class=\"wp-block-heading\">\u00cdndice<\/h2>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-architektura-selenium-webdriver\">Architekt\u00fara Selenium WebDriver<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-selenium-client-library\">Selenium Client Library<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-ovladace-prehliadaca\">Ovl\u00e1da\u010de prehliada\u010da<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-protokol-json-wire-cez-http\">Protokol JSON Wire cez HTTP<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-prehliadace\">Prehliada\u010de<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-architektura-selenium-webdriver\">Arquitectura de Selenium WebDriver<\/h2>\n\n<p>Para comprender a fondo la automatizaci\u00f3n de la interfaz de usuario web mediante Selenium WebDriver, es necesario conocer su arquitectura. Para entender la arquitectura, primero tenemos que conocer los cuatro componentes que forman el marco.<\/p>\n\n<p>Diagrama de arquitectura de Selenium WebDriver:<\/p>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"248\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2023\/11\/automatizacia-1360-330-1024x248.webp\" alt=\"\" class=\"wp-image-634\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2023\/11\/automatizacia-1360-330-1024x248.webp 1024w, https:\/\/ittester.sk\/wp-content\/uploads\/2023\/11\/automatizacia-1360-330-300x73.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2023\/11\/automatizacia-1360-330-768x186.webp 768w, https:\/\/ittester.sk\/wp-content\/uploads\/2023\/11\/automatizacia-1360-330.webp 1360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-selenium-client-library\">Biblioteca de clientes Selenium<\/h2>\n\n<p>Los desarrolladores de Selenium WebDriver han habilitado la compatibilidad con diversos lenguajes de programaci\u00f3n. La biblioteca Selenium Client Library o parte de los enlaces de lenguaje de la arquitectura Selenium WebDriver nos permite escribir scripts de automatizaci\u00f3n de Selenium en el lenguaje que elijamos: Java, Python, C#, Ruby, Javascript, etc.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-ovladace-prehliadaca\">Controladores del navegador<\/h2>\n\n<p>Tenemos un controlador de navegador independiente para cada uno de los navegadores Selenium compatibles. Estos controladores reciben comandos de los scripts Selenium y los pasan a los navegadores adecuados.<br\/>De este modo, estos controladores de navegador permiten que el script Selenium se comunique con distintos navegadores. Esta comunicaci\u00f3n tambi\u00e9n se produce sin revelar la l\u00f3gica interna de estos navegadores. Algunos de los controladores de navegador de Selenium son FirefoxDriver, ChromeDriver, InternetExplorerDriver, SafariDriver, OperaBrowser, EdgeDriver y HtmlUnitDriver.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-protokol-json-wire-cez-http\">Cable JSON sobre HTTP<\/h2>\n\n<p>JSON o JavaScript Object Notation es un formato de datos ligero para almacenar y transferir datos. El protocolo JSON wire permite transferir datos entre el cliente y el servidor a trav\u00e9s de la web.<br\/>En la arquitectura WebDriver, se utiliza el protocolo JSON wire para comunicarse entre los scripts Selenium y los controladores del navegador.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-prehliadace\">Navegadores<\/h2>\n\n<p>Este componente de la arquitectura del Webdriver en Selenium es bastante sencillo. Los navegadores reciben la orden y llaman al m\u00e9todo adecuado para realizar la tarea de automatizaci\u00f3n requerida. Los distintos navegadores compatibles con Selenium son: Chrome, Firefox, IE, Edge, Safari, Opera, etc.<\/p>\n\n<p>Explicaci\u00f3n de la automatizaci\u00f3n mediante Selenium WebDriver<\/p>\n\n<p>Es hora de echar un vistazo al funcionamiento interno de la automatizaci\u00f3n de aplicaciones web en distintos navegadores utilizando Selenium WebDriver. Un ejemplo de realizaci\u00f3n de una tarea sencilla de automatizaci\u00f3n:<\/p>\n\n<p><strong>WebDriver driver = nuevo FirefoxDriver();<\/strong><\/p>\n\n<p><strong>controlador.get(\u00abhttps:\/\/ittester.sk\u00bb);<\/strong><\/p>\n\n<p><strong>driver.findElement(By.id(\u00abbot\u00f3n\u00bb)).click();<\/strong><\/p>\n\n<p>El script est\u00e1 escrito en Java. As\u00ed, el componente Selenium Client Library nos ayuda a crear scripts en Java. Utilizando el protocolo JSON wire, el cliente Selenium se comunica con el controlador del navegador (Firefox en nuestro ejemplo). Ejecuta la operaci\u00f3n get() para iniciar la p\u00e1gina web ITtester.sk y luego pulsa el bot\u00f3n.<\/p>\n\n<p>A continuaci\u00f3n, el controlador del navegador Firefox env\u00eda los comandos al navegador adecuado. Cuando las tareas de automatizaci\u00f3n se completan con \u00e9xito, la respuesta se env\u00eda de vuelta al script de automatizaci\u00f3n.<\/p>\n\n<p>Con esto concluye el tutorial sobre la arquitectura de WebDriver en Selenium. Continuamos con el siguiente cap\u00edtulo de nuestros tutoriales &#8211; <a href=\"https:\/\/ittester.sk\/automatizovane-testovanie\/selenium-tutorial\/selenium-webdriver-instalacia\/\" title=\"\">Selenium WebDriver &#8211; instalaci\u00f3n<\/a>. Esta gu\u00eda te ayudar\u00e1 a configurar Selenium en tu ordenador.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En el post anterior sobre Selenium intro &#8211; una introducci\u00f3n, conocimos los distintos componentes de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2083,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[39],"tags":[],"class_list":["post-2079","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-de-selenio"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/2079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/comments?post=2079"}],"version-history":[{"count":1,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/2079\/revisions"}],"predecessor-version":[{"id":2084,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/2079\/revisions\/2084"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media\/2083"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media?parent=2079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/categories?post=2079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/tags?post=2079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}