Wie wird das erreicht? Hier heißt es, die Java-Version sei:
WebDriver driver; // Assigned elsewhere
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return document.title");
Aber ich kann den C # -Code dafür nicht finden.
Wie wird das erreicht? Hier heißt es, die Java-Version sei:
WebDriver driver; // Assigned elsewhere
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return document.title");
Aber ich kann den C # -Code dafür nicht finden.
Die Objekt-, Methoden- und Eigenschaftsnamen in den .NET-Sprachbindungen entsprechen nicht genau denen in den Java-Bindungen. Eines der Prinzipien des Projekts ist, dass sich jede Sprachbindung für diejenigen, die sich in dieser Sprache wohlfühlen, "natürlich" anfühlt. In C # lautet der Code, den Sie zum Ausführen von JavaScript benötigen, wie folgt
IWebDriver driver; // assume assigned elsewhere
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
string title = (string)js.ExecuteScript("return document.title");
Beachten Sie, dass die vollständige Dokumentation der WebDriver-API für .NET unter diesem Link zu finden ist .
arguments[0].click();
funktioniert bei mir nicht? Ich habe keine Ausnahme, wenn ich meinen Code ausführe, aber er klickt nicht auf die Schaltfläche.ExecuteJavascript
nicht nur eine Methode auf demdriver
?WebDriver.Support.dll
verfügbar über NuGet imSelenium.Support
Paket) gibt es eine Erweiterungsmethode, die das Casting für Sie verwaltet und den Eindruck erweckt, dass der Treiber über eineExecuteJavaScript
Methode verfügt.Ich bevorzuge eine Erweiterungsmethode, um das Skriptobjekt abzurufen:
Verwendet wie folgt:
quelle
Wie wäre es mit einer leicht vereinfachten Version von @Morten Christiansens netter Idee für eine Erweiterungsmethode:
oder vielleicht die generische Version:
quelle
Das Nuget-Paket
Selenium.Support
enthält bereits eine Erweiterungsmethode, um dies zu unterstützen. Sobald es enthalten ist, ein Liner zum Executer-Skriptoder
quelle
IJavaScriptExecutor
und gibt eine bessere Ausnahmemeldung aus, wenn der Rückgabetyp null ist, wenn er nicht in den gewünschten Rückgabetyp umgewandelt werden soll oder kann.Driver
? VS kann das nicht erkennenSie könnten auch tun:
quelle
quelle
In Ihrem Code können Sie dann tun
quelle
Der kürzeste Code
quelle