Métodos críticos 12 javascriptexecutor em selênio

Neste segmento do tutorial, vamos discutir javascriptexecutor em selênio de maneira detalhada e todas as operações prováveis ​​poderiam ser realizadas usando javascriptexecutor em selênio em termos de WebAutomation. 

O que é javascriptexecutor em selênio 

Na Biblioteca Selenium javascriptexecutor é uma interface que está sendo implementada em várias classes, como ChromeDriver, FirefoxDriver, RemoteWebDriver, EdgeDriver, EventFiringWebDriver, InternetExplorerDriver etc. para suportar diferentes operações relacionadas a Javascript para os respectivos drivers de navegador.

JavaScriptExecutor em Selenium
Executor de JavaScript no Selenium

Tipos de Java Script no Selenium e seus métodos: 

Existem dois tipos diferentes de métodos JavaScript disponíveis: 

Diferença entre executeAsyncScript vs executeScript:

executeAsyncScript  : Este tipo de executor de script java é usado para executar um código JavaScript assíncrono no contexto do quadro ou janela atualmente selecionado.

executeScript: Este tipo de executor de script Java que basicamente executa código JavaScript síncrono no contexto do quadro ou janela atualmente selecionado. 

 

Operação que pode ser realizada usando o executor javascript no selênio: 

Existem várias operações da Web cruciais que são alcançadas executando Javascript no driver do navegador para atingir determinada operação, como: 

Vamos discutir todas as operações mencionadas acima: 

Clique em javascript de selênio 

Podemos realizar a operação de clique no Selenium com a operação Javascript na abordagem abaixo: 

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

Selenium javascript inserir texto

Podemos realizar a operação sendkeys no Selenium com a operação Javascript na abordagem abaixo: 

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

Caixa de seleção Selenium JavaScript 

Poderíamos usar a opção verificado= true ou false dependendo dos casos de uso para realizar as operações CheckBox com Javascript no Selenium.

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

Geração de alerta Selenium javascript

Para gerar o alerta, precisamos usar “alerta ('ALERT_TEXT_TO_BE_SHOWN');”Durante a execução da operação com Javascript.

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

Página de atualização do Javascript do Selenium

Para atualizar uma página da web no Selenium com Javascript Executor, podemos usar history.go (0).

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

Selenium javascript para obter o texto interno da página da web

Para buscar todo o texto interno, podemos usar document.documentElement.innerText;

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

Selenium javascript obter o título da página 

Para retornar o título de uma página, podemos usar título do documento; junto com Javascript Executor no Selenium.

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

Selenium javascript para obter o domínio 

Para obter o nome de domínio, podemos usar documento.domínio;

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

Selenium javascript para obter o URL de uma página da web

 

Para buscar a URL usando JavaScript Executor com Selenium, poderíamos usar documento.URL;

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

Selenium javascript Rolando uma página da web 

Podemos executar a rolagem de várias maneiras usando Javascript, duas das abordagens são mostradas abaixo no snippet de código, como:

public void scrollIntoView(By locator) { try { JavascriptExecutor executor = (JavascriptExecutor) driver; Elemento WebElement = driver.findElement(locator); executor.executeScript("arguments[0].scrollIntoView(true);", elemento); BASE_LOGGER .info("a operação scrollIntoView foi executada para o localizador : " + String.valueOf(element)); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Erro encontrado, por exemplo: " + exceptionData + " ao executar scrollIntoView no elemento: " + locator); } }

Também podemos especificar o valor de rolagem (quantidade de rolagem) como esta abordagem abaixo:

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

Selenium javascript para navegar para uma página diferente

Podemos navegar para uma página / tela diferente, fornecendo diretamente a localização do url no javascriptexecutor no Selenium. 

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

Selenium javascript Para localizar e clicar em um elemento oculto

Poderíamos clicar diretamente no elemento oculto com o Javascript do back-end, embora o elemento não esteja visível, aqui está o snippet de código para o mesmo:

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

Conclusão:

Até agora, discutimos sobre o Javascript e várias operações a serem realizadas usando o executor Javascript no Selenium. Recomendamos que você consulte o tutorial completo do Selenium para obter uma melhor compreensão de todos os diferentes aspectos do mesmo. Na próxima série Segmentos de Tutoriais, discutiremos mais sobre o Automação de selênio Framework e outras tecnologias mais recentes para trabalhar com Selenium, e para crack qualquer entrevista avançada no Selenium que você pode fazer aqui.

Deixe um comentário