Maison  >  Article  >  Java  >  JavascriptExecutor dans Selenium

JavascriptExecutor dans Selenium

王林
王林avant
2023-08-19 19:21:091078parcourir

Selenium est un outil d'automatisation Web open source bien connu, utilisé par de nombreuses personnes. Mais parfois, il a des problèmes pour interagir avec certains éléments ; peut-être qu'un popup inattendu empêche le pilote Web d'effectuer ses actions et génère des résultats incorrects. C'est là que JavascriptExecutor joue un rôle clé dans ce scénario, permettant au pilote Web d'effectuer avec succès les opérations requises. Sa complexité et sa soudaineté facilitent la gestion de la situation.

Qu'est-ce que JavascriptExecutor dans Selenium ?

À l'aide d'une interface appelée JavascriptExecutor, il est possible d'exécuter du JavaScript via Selenium et d'interagir avec HTML dans le navigateur lors de l'utilisation de ce langage de programmation. Il est nécessaire d'utiliser des objets JavascriptExecutor pour créer des structures de phrases de longueur et de complexité variables, essentielles à une composition attrayante. phrases. Le texte est crucial. Ainsi, JavaScript Executor fournit un moyen de communiquer avec HTML dans un navigateur Web, tout en permettant également aux programmeurs d'utiliser leur propre style d'écriture JavaScript pour créer des expressions intelligentes et flexibles.

Méthodes

Voici les méthodes fournies par JavascriptExecutor dans Selenium :

La traduction chinoise de

ExecuteScript

est :

Execute script

Exécuter du JavaScript dans la fenêtre ou le cadre actuellement choisi n'a jamais été aussi simple ! En appelant une fonction anonyme, cette méthode permet aux utilisateurs de récolter les fruits d'une multitude de types de données, notamment −

  • Éléments Web

  • Listes

  • Cordes

  • Longue

  • Booléen

  • ExécuterAsyncScript

L'exécution JavaScript asynchrone est une approche multithread pour exécuter des tâches JavaScript individuelles dans la fenêtre ou le cadre actuel. Elle permet de poursuivre l'analyse des pages, d'optimiser les performances et d'offrir une grande flexibilité en décomposant le code en composants facilement identifiables avec une complexité et un contexte variables. La clé pour atteindre cet objectif. Cette approche consiste à créer des segments concis dans certaines zones tout en s'adaptant à des sections plus longues et complexes dans d'autres parties. Avec cette méthode, le JavaScript asynchrone est exécuté de manière efficace et optimisée.

Apprenez à utiliser JavascriptExecutor

  • Étape 1 - Importer le colis

  • import org.openqa.selenium.JavascriptExecutor;
    
  • Étape 2 - Créer une référence

  • javascriptExecutor js = (JavascriptExecutor) driver;
    
  • Étape 3 - Appeler la méthode JavascriptExecutor

  • js.executeScript(script, args);
    
Mise en œuvre

La traduction chinoise de

Exemple

est :

Exemple

// importing the package
Import org.openqa.selenium.JavascriptExecutor;

// creating a reference
JavascriptExecutor js = (JavascriptExecutor) driver;

// calling the method
js.executeScript(script, args);

Exemples de JavascriptExecutor dans Selenium

Exemple 1

Actualisez la fenêtre du navigateur.

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("location.reload()");

Exemple 2

Pour envoyer le SMS.

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("document.getElementByID(‘element id ’).value = ‘xyz’;");

Exemple 3

Générer une fenêtre contextuelle d'avertissement.

JavascriptExecutor js = (JavascriptExecutor)driver;

Js.executeScript("alert(‘hello world’);");

Exemple 4

Pour obtenir le texte interne d'une page Web.

avascriptExecutor js = (JavascriptExecutor)driver;

string sText =  js.executeScript("return document.documentElement.innerText;").toString();

Exemple 5

Pour obtenir le titre de la page Web.

avascriptExecutor js = (JavascriptExecutor)driver;

string sText =  js.executeScript("return document.title;").toString();
La traduction chinoise de

Exemple 6

est :

Exemple 6

Faites défiler la page.

JavascriptExecutor js = (JavascriptExecutor)driver;

 //Vertical scroll – down by 150 pixels

 js.executeScript("window.scrollBy(0,150)");

Sélectionnez un élément à l'aide de javascriptExecutor

Dans cet exemple, nous utilisons le pilote Web Selenium et javascriptExecutor pour ouvrir le site Web WaytoClass et cliquer sur un élément.

Explication

Le script mentionné suivant lancera le navigateur Edge, vous amènera au site Web WaytoClass et utilisera javascriptExecutor pour cliquer sur un certain élément. Voyons donc comment il fonctionne.

  • Créez une classe de pilote Edge et fournissez le chemin de votreedgedriver.exe dans la propriété système "webdriver.edge.driver".

  • Maximisez la fenêtre en utilisant driver.manage().window().maximize()

  • Utilisez driver.get("URL link") pour ouvrir l'URL

  • Utilisez la méthode finddby xpath pour obtenir l'élément Java "driver.findElement(By.xpath("xpath address"));"

  • Créez une référence pour javascriptExecutor en utilisant le pilote javascriptExecutor js=(javascriptExecutor) ;"

  • Appelez la méthode javascriptExecutor et transmettez l'élément de page Web sur lequel cliquer "js.executeScript("arguments[0].click();",webelement);"

  • La traduction chinoise de
Exemple

est :

Exemple

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
public class waytoclass {
   public static void main(String args[]) {
      System.setProperty(
         "webdriver.edge.driver",
         "C:\Users\ADMIN\Documents\Selenium\msedgedriver.exe");
	
      // Instantiate a Driver class.
      WebDriver driver = new EdgeDriver();
	
      // Maximize the browser
      driver.manage().window().maximize();
	
      // Launch Website
      driver.get("https://www.waytoclass.com/");
	
      WebElement java = driver.findElement(
         By.xpath("//*[@id="hslider"]/li[6]/a"));
	
      // Create a reference
      JavascriptExecutor js = (JavascriptExecutor)driver;
	
      // Call the JavascriptExecutor methods
      js.executeScript("arguments[0].click();", java);
   }
}

Sortie

Starting MSEdgeDriver 98.0.1108.56 (9a336a18ae89157b3c7ea0568a9cbced8ebc3f7) on port 55401
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping MSEdgeDriver safe. MSEdgeDriver was started successfully.

REMARQUE - Après avoir affiché le résultat ci-dessus, le site Web s'ouvrira automatiquement et cliquera sur l'élément.

JavascriptExecutor dans Selenium

Conclusion

L'amélioration des capacités d'automatisation sur le Web est rendue possible grâce à l'utilisation de JavascriptExecutor, qui permet aux développeurs d'interagir avec les éléments de la page au-delà de ce qui est habituellement possible avec Selenium. De plus, avec un degré plus élevé de flexibilité et de personnalisation ajouté à l'équation, l'automatisation du Web peut être considérablement améliorée. en termes de rapidité et d'efficacité. Malgré sa complexité pour les codeurs inexpérimentés qui ne connaissent pas les subtilités de JavaScript, la maîtrise de ce langage peut permettre aux organisations qui s'efforcent de faire progresser leur personnalité Internet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Node.js contre JavaArticle suivant:Node.js contre Java