public static IJavaScriptExecutor Scripts(this IWebDriver driver)
{
return (IJavaScriptExecutor)driver;
}
用作:
driver.Scripts().ExecuteScript("some script");
12
如何略微简化版本的@Morten Christiansen的好扩展方法的想法:
public static object Execute(this IWebDriver driver, string script)
{
return ((IJavaScriptExecutor)driver).ExecuteScript(script);
}
// usage
var title = (string)driver.Execute("return document.title");
或者通用版本:
public static T Execute<T>(this IWebDriver driver, string script)
{
return (T)((IJavaScriptExecutor)driver).ExecuteScript(script);
}
// usage
var title = driver.Execute<string>("return document.title");
7 回答
.NET语言绑定中的对象,方法和属性名称与Java绑定中的对象,方法和属性名称不完全对应 . 该项目的原则之一是每种语言绑定应该对那些语言中的舒适编码“感觉自然” . 在C#中,您要执行JavaScript的代码如下所示
请注意,可以在this link找到WebDriver API for .NET的完整文档 .
我更喜欢使用扩展方法来获取脚本对象:
用作:
如何略微简化版本的@Morten Christiansen的好扩展方法的想法:
或者通用版本:
nuget包
Selenium.Support
已经包含一个扩展方法来帮助解决这个问题 . 一旦它被包含,一个衬垫到执行者脚本要么
你也可以这样做:
在您的代码中,您可以这样做