Los nombres de objeto, método y propiedad en los enlaces del lenguaje .NET no se corresponden exactamente con los de los enlaces Java. Uno de los principios del proyecto es que cada enlace de idioma debe "sentirse natural" para quienes se sientan cómodos codificando en ese idioma. En C #, el código que desea para ejecutar JavaScript es el siguiente
IWebDriver driver; // assume assigned elsewhere
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
string title = (string)js.ExecuteScript("return document.title");
Tenga en cuenta que la documentación completa de la API de WebDriver para .NET se puede encontrar en este enlace .
arguments[0].click();
no me funciona? No tengo ninguna excepción cuando ejecuto mi código, pero no hace clic en el botón.ExecuteJavascript
no es solo un método en eldriver
?WebDriver.Support.dll
disponible a través de NuGet en elSelenium.Support
paquete), hay un método de extensión que maneja la conversión por usted y hace que parezca que el controlador tiene unExecuteJavaScript
método.Prefiero usar un método de extensión para obtener el objeto scripts:
Usado como este:
fuente
¿Qué tal una versión ligeramente simplificada de la bonita idea del método de extensión de @Morten Christiansen?
o tal vez la versión genérica:
fuente
el paquete nuget
Selenium.Support
ya contiene un método de extensión para ayudar con esto. Una vez que se incluye, una línea para ejecutar el scripto
fuente
IJavaScriptExecutor
y proporciona un mejor mensaje de excepción si el tipo de retorno es nulo cuando no debería ser o no se puede convertir al tipo de retorno deseado.Driver
? VS no puede reconocer esoTambién puedes hacer:
fuente
fuente
En su código puede hacer
fuente
El código más corto
fuente