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");
public static class Webdriver
{
public static void ExecuteJavaScript(this IWebDriver driver, string scripts)
{
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript(scripts);
}
public static T ExecuteJavaScript<T>(this IWebDriver driver, string scripts)
{
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
return (T)js.ExecuteScript(scripts);
}
}
在代码中,您可以执行以下操作:
IWebDriver driver = new WhateverDriver();
string test = driver.ExecuteJavaScript<string>(" return 'hello World'; ");
int test = driver.ExecuteJavaScript<int>(" return 3; ");
9条答案
按热度按时间vu8f3i0k1#
NET语言绑定中的对象、方法和属性名称并不完全对应于Java绑定中的名称。该项目的原则之一是,每种语言绑定都应该让那些熟悉该语言的编程人员“感觉自然”。在C#中,您希望执行JavaScript的代码如下所示
请注意,WebDriver API for .NET的完整文档位于this link。
avkwfej42#
我更喜欢使用扩展方法来获取scripts对象:
用作:
ygya80vv3#
nuget包
Selenium.Support
已经包含了一个扩展方法来帮助完成这个任务。2一旦包含了它,一个执行脚本的liner或
fykwrbwg4#
@MortenChristiansen不错的扩展方法思想的一个稍微简化的版本怎么样:
或者是通用版本:
dfuffjeb5#
您还可以执行以下操作:
7eumitmz6#
x9ybnkn67#
在代码中,您可以执行以下操作:
tzcvj98z8#
最短代码
guz6ccqo9#
请使用下面添加的扩展方法来执行javascript并在Selenium中截图。Selenium C#的支持(.dll)
https://www.nuget.org/packages/Selenium.Support/