Critical 12 méthodes javascriptexecutor dans le sélénium

Dans ce segment du tutoriel, nous allons discuter de javascriptexecutor dans le sélénium de manière détaillée et toutes les opérations probables pourraient être effectuées à l'aide de javascriptexecutor dans le sélénium en termes de WebAutomation. 

Qu'est-ce que javascriptexecutor dans le sélénium 

Dans la bibliothèque Selenium, javascriptexecutor est une interface qui est implémentée plusieurs classes telles que ChromeDriver, FirefoxDriver, RemoteWebDriver, EdgeDriver, EventFiringWebDriver, InternetExplorerDriver, etc. pour prendre en charge différentes opérations liées à Javascript vers les pilotes de navigateur respectifs.

JavaScriptExecutor dans Selenium
JavaScript Executor dans Selenium

Types de script Java dans Selenium et ses méthodes: 

Il existe deux types de méthodes JavaScript disponibles: 

  • exécuterAsyncScript
  • exécuterScript

Différence entre executeAsyncScript et executeScript:

exécuterAsyncScript  : Ce type d'exécuteur de script java est utilisé pour exécuter un code JavaScript asynchrone dans le contexte du cadre ou de la fenêtre actuellement sélectionné.

executeScript: Ce type de script Java Script qui exécute essentiellement du code JavaScript synchrone dans le contexte du cadre ou de la fenêtre actuellement sélectionné. 

 

Opération qui pourrait être effectuée à l'aide de l'exécuteur javascript en sélénium: 

Il existe diverses opérations Web cruciales qui sont effectuées en exécutant Javascript dans le pilote du navigateur pour réaliser certaines opérations telles que: 

Permet de discuter de toutes les opérations mentionnées ci-dessus: 

Clic javascript sélénium 

Nous pouvons effectuer une opération de clic dans Selenium avec une opération Javascript dans l'approche ci-dessous: 

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

Selenium javascript entrer du texte

Nous pouvons effectuer l'opération sendkeys dans Selenium avec l'opération Javascript dans l'approche ci-dessous: 

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

Case à cocher Selenium javascript 

Nous pourrions utiliser l'option vérifié= true ou false selon les cas d'utilisation pour effectuer les opérations CheckBox avec Javascript dans Selenium.

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

Génération d'alertes javascript Selenium

Pour générer l'alerte, nous devons utiliser "alert ('ALERT_TEXT_TO_BE_SHOWN');”Lors de l'exécution de l'opération avec Javascript.

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

Page d'actualisation de Selenium javascript

Pour actualiser une page Web dans Selenium avec Javascript Executor, nous pouvons utiliser history.go (0).

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

Selenium javascript pour obtenir le texte interne de WebPage

Pour récupérer tout le texte intérieur, nous pouvons utiliser document.documentElement.innerText;

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

Selenium javascript obtenir le titre de la page 

Pour renvoyer le titre d'une page, nous pouvons utiliser titre du document; avec Javascript Executor dans Selenium.

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

Selenium javascript pour obtenir le domaine 

Pour extraire le nom de domaine, nous pouvons utiliser document.domaine;

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

Selenium javascript pour obtenir l'URL d'une page Web

 

Pour récupérer l'URL en utilisant JavaScript Executor avec Selenium, nous pourrions utiliser document.URL;

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

Selenium javascript Faire défiler une page Web 

Nous pouvons effectuer le défilement de plusieurs façons en utilisant Javascript, deux des approches sont présentées ci-dessous dans l'extrait de code, telles que:

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);
   }
}

Nous pouvons également spécifier la valeur de défilement (quantité de défilement) comme suit l'approche ci-dessous:

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

Selenium javascript pour accéder à une autre page

Nous pouvons naviguer vers une page Web / un écran différent en fournissant directement l'emplacement de l'url dans le javascriptexecutor dans Selenium. 

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

Selenium javascript Pour rechercher et cliquer sur un élément caché

Nous pourrions directement cliquer sur l'élément caché avec le Javascript depuis le backend même si l'élément n'est pas visible, voici l'extrait de code pour le même:

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

Conclusion:

Nous avons jusqu'à présent discuté du Javascript et des différentes opérations à effectuer à l'aide de l'exécuteur Javascript dans Selenium, nous vous encourageons à passer par le tutoriel complet sur Selenium pour avoir une meilleure prise sur tous les différents aspects de la même chose. Dans les prochains segments de la série de tutoriels, nous aborderons plus en détail Automatisation au sélénium Framework et autres technologies les plus récentes pour travailler avec Selenium et pour craquez toute interview avancée dans Selenium que vous pouvez passer ici.

À propos de Debarghya

Moi-même Debarghya Roy, je suis un ARCHITECTE en ingénierie travaillant avec la société fortune 5 et un contributeur open source, ayant environ 12 ans d'expérience / expertise dans diverses piles technologiques.
J'ai travaillé avec diverses technologies telles que 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, automatisation de l'ingénierie des processus, automatisation mainframe, développement back-end avec SpringBoot, Kafka, Redis, RabitMQ, pile ELK, GrayLog, Jenkins et ayant également une expérience dans les technologies cloud, DevOps, etc.
Je vis à Bangalore, en Inde avec ma femme et j'ai une passion pour les blogs, la musique, jouer de la guitare et ma philosophie de vie est l'éducation pour tous qui a donné naissance à LambdaGeeks. Permet de se connecter via linked-in - https://www.linkedin.com/in/debarghya-roy/

Laisser un commentaire

Votre adresse email n'apparaîtra pas. Les champs obligatoires sont marqués *

Geeks Lambda