Les noms d'objet, de méthode et de propriété dans les liaisons de langage .NET ne correspondent pas exactement à ceux des liaisons Java. L'un des principes du projet est que chaque liaison de langue doit «se sentir naturelle» pour ceux qui sont à l'aise avec le codage dans cette langue. En C #, le code que vous souhaitez pour exécuter JavaScript est le suivant
IWebDriver driver; // assume assigned elsewhere
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
string title = (string)js.ExecuteScript("return document.title");
Notez que la documentation complète de l'API WebDriver pour .NET se trouve sur ce lien .
arguments[0].click();
ne marche pas pour moi? Je n'ai aucune exception lorsque j'exécute mon code, mais il ne clique pas sur le bouton.ExecuteJavascript
pas juste une méthode sur ledriver
?WebDriver.Support.dll
, disponible via NuGet dans leSelenium.Support
package), il existe une méthode d'extension qui gère le cast pour vous et donne l'impression que le pilote a uneExecuteJavaScript
méthode.Je préfère utiliser une méthode d'extension pour obtenir l'objet scripts:
Utilisé comme ceci:
la source
Que diriez-vous d'une version légèrement simplifiée de la belle idée de méthode d'extension de @Morten Christiansen:
ou peut-être la version générique:
la source
le paquet nuget
Selenium.Support
contient déjà une méthode d'extension pour vous aider. Une fois qu'il est inclus, une doublure pour exécuter le scriptou
la source
IJavaScriptExecutor
et donne un meilleur message d'exception si le type de retour est nul alors qu'il ne devrait pas ou ne peut pas être converti en type de retour souhaité.Driver
? VS ne peut pas reconnaître celaVous pouvez également faire:
la source
la source
Dans votre code, vous pouvez alors faire
la source
Le code le plus court
la source