Heim  >  Artikel  >  Java  >  JavascriptExecutor in Selenium

JavascriptExecutor in Selenium

王林
王林nach vorne
2023-08-19 19:21:091074Durchsuche

Selenium ist ein bekanntes webbasiertes Open-Source-Automatisierungstool, das von vielen Menschen verwendet wird. Aber manchmal gibt es Probleme bei der Interaktion mit bestimmten Elementen; möglicherweise verhindert ein unerwartetes Popup, dass der Web-Treiber seine Aktionen ausführt, und generiert falsche Ergebnisse. Hier spielt JavascriptExecutor in diesem Szenario eine Schlüsselrolle und ermöglicht es dem Webtreiber, die erforderlichen Vorgänge erfolgreich auszuführen. Seine Komplexität und Plötzlichkeit erleichtern den Umgang mit der Situation.

Was ist JavascriptExecutor in Selenium?

Mithilfe einer Schnittstelle namens JavascriptExecutor ist es möglich, JavaScript über Selenium auszuführen und mit HTML im Browser zu interagieren, wenn diese Programmiersprache verwendet wird. Es ist notwendig, JavascriptExecutor-Objekte zu verwenden, um Satzstrukturen unterschiedlicher Länge und Komplexität zu erstellen, die für das Verfassen ansprechender Texte unerlässlich sind Sätze sind entscheidend. Somit bietet der JavaScript Executor eine Möglichkeit, mit HTML innerhalb eines Webbrowsers zu kommunizieren, und ermöglicht es Programmierern gleichzeitig, ihren eigenen einzigartigen JavaScript-Schreibstil zu verwenden, um clevere und flexible Ausdrücke zu erstellen.

Methoden

Die folgenden Methoden werden von JavascriptExecutor in Selenium bereitgestellt:

Die chinesische Übersetzung von

ExecuteScript

lautet:

Execute script

Das Ausführen von JavaScript im aktuell ausgewählten Fenster oder Frame war noch nie so einfach! Durch den Aufruf einer anonymen Funktion können Benutzer mit dieser Methode von einer Vielzahl von Datentypen profitieren, darunter −

  • Web-Elemente

  • Listen

  • Saiten

  • Lang

  • Boolean

  • AsyncScript ausführen

Die asynchrone JavaScript-Ausführung ist ein Multithread-Ansatz zur Ausführung einzelner JavaScript-Aufgaben im aktuellen Fenster oder Frame. Sie ermöglicht die Fortsetzung der Seitenanalyse, optimiert die Leistung und bietet große Flexibilität. Die Aufteilung des Codes in leicht identifizierbare Komponenten mit unterschiedlicher Komplexität und Kontext Der Schlüssel zum Erreichen dieses Ziels besteht darin, in einigen Bereichen prägnante Segmente zu erstellen und in anderen Teilen längere und kompliziertere Abschnitte unterzubringen. Mit dieser Methode wird das asynchrone JavaScript auf effiziente und optimierte Weise ausgeführt

Erfahren Sie, wie Sie JavascriptExecutor verwenden

  • Schritt 1 – Paket importieren

  • import org.openqa.selenium.JavascriptExecutor;
    
  • Schritt 2 – Erstellen Sie eine Referenz

  • javascriptExecutor js = (JavascriptExecutor) driver;
    
  • Schritt 3 – JavascriptExecutor-Methode aufrufen

  • js.executeScript(script, args);
    
Umsetzung

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

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

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

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

Beispiele für JavascriptExecutor in Selenium

Beispiel 1

Aktualisieren Sie das Browserfenster.

JavascriptExecutor js = (JavascriptExecutor) driver;

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

Beispiel 2

Um den Text zu senden.

JavascriptExecutor js = (JavascriptExecutor) driver;

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

Beispiel 3

Warnungs-Popup-Fenster generieren.

JavascriptExecutor js = (JavascriptExecutor)driver;

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

Beispiel 4

Um den inneren Text einer Webseite zu erhalten.

avascriptExecutor js = (JavascriptExecutor)driver;

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

Beispiel 5

Um den Titel der Webseite zu erhalten.

avascriptExecutor js = (JavascriptExecutor)driver;

string sText =  js.executeScript("return document.title;").toString();
Die chinesische Übersetzung von

Beispiel 6

lautet:

Beispiel 6

Scrollen Sie durch die Seite.

JavascriptExecutor js = (JavascriptExecutor)driver;

 //Vertical scroll – down by 150 pixels

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

Wählen Sie ein Element mit javascriptExecutor aus

In diesem Beispiel verwenden wir den Selenium-Webtreiber und JavascriptExecutor, um die WaytoClass-Website zu öffnen und auf ein Element zu klicken.

Erklärung

Das folgende Skript startet den Edge-Browser, führt Sie zur WaytoClass-Website und klickt mit javascriptExecutor auf ein bestimmtes Element. Schauen wir uns also an, wie es funktioniert.

  • Erstellen Sie eine Edge-Treiberklasse und geben Sie den Pfad von youredgedriver.exe in der Systemeigenschaft „webdriver.edge.driver“ an.

  • Maximieren Sie das Fenster mit drivers.manage().window().maximize()

  • Verwenden Sie drivers.get("URL-Link"), um die URL zu öffnen

  • Verwenden Sie die Methode finddby xpath, um das Java-Element „driver.findElement(By.xpath("xpath address"));" abzurufen

  • Erstellen Sie eine Referenz für javascriptExecutor, indem Sie javascriptExecutor js=(javascriptExecutor) drivers;"

    verwenden
  • Rufen Sie die javascriptExecutor-Methode auf und übergeben Sie das anzuklickende Webseitenelement „js.executeScript(“arguments[0].click();“,webelement);“

  • Die chinesische Übersetzung von
Beispiel

lautet:

Beispiel

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

Ausgabe

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.

HINWEIS – Nach der Anzeige der obigen Ausgabe wird automatisch die Website geöffnet und auf das Element geklickt.

JavascriptExecutor in Selenium

Fazit

Die Verbesserung der Automatisierungsmöglichkeiten im Web wird durch den Einsatz von JavascriptExecutor ermöglicht, der es Entwicklern ermöglicht, mit Seitenelementen zu interagieren, die über das hinausgehen, was mit Selenium normalerweise möglich ist. Darüber hinaus kann die Webautomatisierung durch ein höheres Maß an Flexibilität und Anpassung erheblich verbessert werden In Bezug auf Geschwindigkeit und Effizienz kann die Beherrschung dieser Sprache trotz ihrer Komplexität für unerfahrene Programmierer, die sich nicht mit den Feinheiten von JavaScript auskennen, Organisationen helfen, die ihre Internetpersönlichkeit weiterentwickeln möchten.

Das obige ist der detaillierte Inhalt vonJavascriptExecutor in Selenium. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Node.js vs. JavaNächster Artikel:Node.js vs. Java