Maison > Java > javaDidacticiel > JavascriptExecutor dans Selenium

JavascriptExecutor dans Selenium

王林
Libérer: 2023-08-19 19:21:09
avant
1118 Les gens l'ont consulté

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;
    
    Copier après la connexion
  • Étape 2 - Créer une référence

  • javascriptExecutor js = (JavascriptExecutor) driver;
    
    Copier après la connexion
  • Étape 3 - Appeler la méthode JavascriptExecutor

  • js.executeScript(script, args);
    
    Copier après la connexion
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);
Copier après la connexion

Exemples de JavascriptExecutor dans Selenium

Exemple 1

Actualisez la fenêtre du navigateur.

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("location.reload()");
Copier après la connexion

Exemple 2

Pour envoyer le SMS.

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("document.getElementByID(‘element id ’).value = ‘xyz’;");
Copier après la connexion

Exemple 3

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

JavascriptExecutor js = (JavascriptExecutor)driver;

Js.executeScript("alert(‘hello world’);");
Copier après la connexion

Exemple 4

Pour obtenir le texte interne d'une page Web.

avascriptExecutor js = (JavascriptExecutor)driver;

string sText =  js.executeScript("return document.documentElement.innerText;").toString();
Copier après la connexion

Exemple 5

Pour obtenir le titre de la page Web.

avascriptExecutor js = (JavascriptExecutor)driver;

string sText =  js.executeScript("return document.title;").toString();
Copier après la connexion
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)");
Copier après la connexion

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);
   }
}
Copier après la connexion

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.
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal