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: 

Diferencia entre executeAsyncScript y executeScript:

ejecutarAsyncScript  : 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() { elemento WebElement = driver.findElement(By.xpath("Xpath_OF_Element")); JavascriptExecutor jscriptExecutor = (JavascriptExecutor) controlador; jscriptExecutor.executeScript("argumentos[0].click();", elemento); }

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) controlador; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').value='INTRODUZCA_EL_TEXTO_AQUÍ';"); }

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) controlador; 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) controlador; 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) controlador; jscriptExecutor.executeScript("historia.go(0)"); }

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

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

public String jsFetchInnerText() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) controlador; 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) controlador; return String.valueOf(jscriptExecutor.executeScript("return document.title;")); }

Selenium javascript para obtener el dominio 

Para sacar el nombre de dominio podemos usar documento.dominio;

public String jsFetchDomain() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) controlador; 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 documento.URL;

public String jsFetchURL() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) controlador; 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:

scrollIntoView public void (Por localizador) { try { JavascriptExecutor ejecutor = (JavascriptExecutor) controlador; Elemento WebElement = controlador.findElement(localizador); executor.executeScript("argumentos[0].scrollIntoView(true);", elemento); BASE_LOGGER .info("Se ha realizado la operación scrollIntoView para el localizador: " + String.valueOf(elemento)); } catch (Exception e) { StringExceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Error encontrado, es decir: " +ExceptionData + " al realizar scrollIntoView en el elemento: " + locator); } }

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

public void jsScroll() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) controlador; 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) controlador; jscriptExecutor.executeScript("window.ubicación = '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) controlador; WebElement hiddenElement=driver.findElement(By.id("ID_OF_ELEMENT")); jscriptExecutor.executeScript("argumentos[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í.

Deja un comentario