Heim >Java >javaLernprogramm >JavascriptExecutor in Selenium
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.
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.
Die folgenden Methoden werden von JavascriptExecutor in Selenium bereitgestellt:
Die chinesische Übersetzung vonDas 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 verwendenSchritt 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
// importing the package Import org.openqa.selenium.JavascriptExecutor; // creating a reference JavascriptExecutor js = (JavascriptExecutor) driver; // calling the method js.executeScript(script, args);
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("location.reload()");Beispiel 2
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("document.getElementByID(‘element id ’).value = ‘xyz’;");Beispiel 3
JavascriptExecutor js = (JavascriptExecutor)driver; Js.executeScript("alert(‘hello world’);");Beispiel 4
avascriptExecutor js = (JavascriptExecutor)driver; string sText = js.executeScript("return document.documentElement.innerText;").toString();Beispiel 5
avascriptExecutor js = (JavascriptExecutor)driver; string sText = js.executeScript("return document.title;").toString();Die chinesische Übersetzung von Beispiel 6
JavascriptExecutor js = (JavascriptExecutor)driver; //Vertical scroll – down by 150 pixels js.executeScript("window.scrollBy(0,150)");Wählen Sie ein Element mit javascriptExecutor aus
Erklärung
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); } }
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.
Fazit
Das obige ist der detaillierte Inhalt vonJavascriptExecutor in Selenium. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!