Métodos críticos de 12 javascriptexecutor en selenio

En este segmento del tutorial vamos a discutir javascriptexecutor en selenium de manera detallada y todas las operaciones probables podrían realizarse usando javascriptexecutor en selenium en términos de WebAutomation. 

¿Qué es javascriptexecutor en selenium? 

En la biblioteca de Selenium, javascriptexecutor es una interfaz que se está implementando en varias clases, como ChromeDriver, FirefoxDriver, RemoteWebDriver, EdgeDriver, EventFiringWebDriver, InternetExplorerDriver, etc. para admitir diferentes operaciones relacionadas con Javascript hacia los respectivos controladores del navegador.

JavaScriptExecutor en Selenium
Ejecutor de JavaScript en Selenium

Tipos de Java Script en Selenium y sus métodos: 

Hay dos tipos diferentes de métodos JavaScript disponibles: 

  • executeAsyncScript
  • ejecutar script

Diferencia entre executeAsyncScript y executeScript:

executeAsyncScript  : Este tipo de ejecutor de scripts de Java se utiliza para ejecutar un código JavaScript asíncrono en el contexto del marco o ventana actualmente seleccionado.

executeScript: Este tipo de ejecutor de scripts de Java que básicamente ejecuta código JavaScript síncrono en el contexto del marco o ventana actualmente seleccionado. 

 

Operación que se podría realizar usando el ejecutor de javascript en selenium: 

Hay varias operaciones web cruciales que se logran ejecutando Javascript en el controlador del navegador para lograr ciertas operaciones como: 

Analicemos todas las operaciones mencionadas anteriormente: 

Selenium javascript clic 

Podemos realizar la operación de clic en Selenium con la operación de Javascript en el siguiente enfoque: 

public void jsClick() {
   WebElement element = driver.findElement(By.xpath("Xpath_OF_Element"));
   JavascriptExecutor jscriptExecutor = (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("arguments[0].click();", element);
}

Selenium javascript ingresar texto

Podemos realizar la operación sendkeys en Selenium con la operación Javascript en el siguiente enfoque: 

public void jsSendKeys() {
   JavascriptExecutor jscriptExecutor = (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("document.getElementById('id_of_the_element').value='ENTER_THE_TEXT_HERE';");
}

Casilla de verificación de selenio javascript 

Podríamos usar la opción comprobado= verdadero o falso dependiendo de los casos de uso para realizar las operaciones CheckBox con Javascript en Selenium.

public void jsCheckBoxOps() {
   JavascriptExecutor jscriptExecutor = (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("document.getElementById('id_of_the_element').checked=false;");
}

Generación de alertas de JavaScript de selenio

Para generar la alerta necesitamos usar "alert ('ALERT_TEXT_TO_BE_SHOWN');”Mientras realiza la operación con Javascript.

public void jsAlertGeneration() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("alert('ALERT_TEXT_TO_BE_SHOWN');");
}

Página de actualización de JavaScript de selenio

Para actualizar una página web en Selenium con Javascript Executor podemos usar history.go (0).

public void jsRefreshPage() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("history.go(0)");
}

Selenium javascript para obtener el texto interno de la página web

Para recuperar el texto interno completo podemos usar document.documentElement.innerText;

public String jsFetchInnerText() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   return String.valueOf(jscriptExecutor.executeScript("return document.documentElement.innerText;"));
}

Selenium javascript obtener el título de la página 

Para devolver el título de una página podemos usar titulo del documento; junto con Javascript Executor en Selenium.

public String jsWebPageTitle() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   return String.valueOf(jscriptExecutor.executeScript("return document.title;"));
}

Selenium javascript para obtener el dominio 

Para sacar el nombre de dominio podemos usar document.domain;

public String jsFetchDomain() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   return String.valueOf(jscriptExecutor.executeScript("return document.domain;"));
}

Selenium javascript para obtener la URL de una página web

 

Para obtener la URL usando JavaScript Executor con Selenium, podríamos usar document.URL;

public String jsFetchURL() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   return String.valueOf(jscriptExecutor.executeScript("return document.URL;"));
}

Selenium javascript Desplazamiento de una página web 

Podemos realizar el desplazamiento de varias formas usando Javascript, dos de los enfoques se muestran a continuación en el fragmento de código, como:

public void scrollIntoView(By locator) {

   try {
       JavascriptExecutor executor = (JavascriptExecutor) driver;
       WebElement element = driver.findElement(locator);
       executor.executeScript("arguments[0].scrollIntoView(true);", element);
       BASE_LOGGER
               .info("scrollIntoView operation has been performed for the locator : " + String.valueOf(element));
   } catch (Exception e) {
       String exceptionData = e.getCause().getMessage();
       BASE_LOGGER.error("Error encountered i.e : " + exceptionData
               + " while performing scrollIntoView on the element : " + locator);
   }
}

También podemos especificar el valor de desplazamiento (cantidad de desplazamiento) de la siguiente manera:

public void jsScroll() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("window.scrollBy(0,1000)");
}

Selenium javascript para navegar a una página diferente

Podemos navegar a una página web / pantalla diferente proporcionando directamente la ubicación de la URL dentro del javascriptexecutor en Selenium. 

public void pageNavigationWithJS() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("window.location = 'PageURL_To_Navigate'");
}

Selenium javascript Para buscar y hacer clic en un elemento oculto

Podríamos hacer clic directamente en el elemento oculto con Javascript desde el backend aunque el elemento no sea visible, aquí está el fragmento de código para el mismo:

public void clickOnHiddenElement() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   WebElement hiddenElement=driver.findElement(By.id("ID_OF_ELEMENT"));
   jscriptExecutor.executeScript("arguments[0].click();", hiddenElement);
}

conclusión:

Hasta ahora hemos discutido sobre Javascript y varias operaciones que se realizarán usando el ejecutor de Javascript en Selenium, le recomendamos que revise el tutorial completo de selenio para tener un mejor control sobre todos los diferentes aspectos del mismo. En la próxima serie de segmentos de tutoriales, analizaremos más sobre el Automatización de selenio Framework y otras tecnologías más recientes para trabajar con Selenium y para descifre cualquier entrevista avanzada en Selenium por la que pueda pasar aquí.

Sobre Debarghya

Yo mismo, Debarghya Roy, soy un ARQUITECTO de ingeniería que trabaja con una compañía de Fortune 5 y un colaborador de código abierto, con alrededor de 12 años de experiencia / conocimientos en varias tecnologías.
He trabajado con diversas tecnologías como Java, C #, Python, Groovy, UI Automation (Selenium), Mobile Automation (Appium), API / Backend Automation, Performance Engineering (JMeter, Locust), Security Automation (MobSF, OwAsp, Kali Linux , Astra, ZAP, etc.), RPA, automatización de ingeniería de procesos, automatización de mainframe, desarrollo de back-end con SpringBoot, Kafka, Redis, RabitMQ, ELK stack, GrayLog, Jenkins y también con experiencia en tecnologías de nube, DevOps, etc.
Vivo en Bangalore, India con mi esposa y tengo pasión por los blogs, la música, tocar la guitarra y mi Filosofía de vida es Educación para Todos, que dio origen a LambdaGeeks. Vamos a conectarnos a través de enlaces: https://www.linkedin.com/in/debarghya-roy/

Deja un comentario

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