在 C# 中使用 Selenium WebDriver 执行 JavaScript
这是如何实现的? 这里它说java版本是:
WebDriver driver; // Assigned elsewhere
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return document.title");
但我找不到C#代码来做到这一点。
How is this achieved? Here it says the java version is:
WebDriver driver; // Assigned elsewhere
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return document.title");
But I can't find the C# code to do this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
.NET 语言绑定中的对象、方法和属性名称与 Java 绑定中的对象、方法和属性名称并不完全对应。该项目的原则之一是每种语言绑定对于那些使用该语言进行舒适编码的人来说应该“感觉自然”。在 C# 中,执行 JavaScript 所需的代码如下所示。
请注意,.NET 的 WebDriver API 的完整文档可以在 此链接。
The object, method, and property names in the .NET language bindings do not exactly correspond to those in the Java bindings. One of the principles of the project is that each language binding should "feel natural" to those comfortable coding in that language. In C#, the code you'd want for executing JavaScript is as follows
Note that the complete documentation of the WebDriver API for .NET can be found at this link.
我更喜欢使用扩展方法来获取脚本对象:
使用如下:
I prefer to use an extension method to get the scripts object:
Used as this:
nuget 包
Selenium.Support
已经包含一个扩展方法来帮助解决此问题。一旦包含在内,执行程序脚本的一个衬垫或
the nuget package
Selenium.Support
already contains an extension method to help with this. Once it is included, one liner to executer scriptor
@Morten Christiansen 的不错的扩展方法想法的稍微简化版本怎么样:
或者通用版本:
How about a slightly simplified version of @Morten Christiansen's nice extension method idea:
or maybe the generic version:
你还可以这样做:
You could also do:
在您的代码中您可以执行以下操作:
In your code you can then do:
请使用以下添加的扩展方法来执行 javascript 并在 Selenium C# 的 Selenium.Support (.dll) 中截取屏幕截图
https://www.nuget.org/packages/Selenium.Support/
Please use the below extension methods added to execute javascript and to take screenshot in Selenium.Support (.dll) of Selenium C#
https://www.nuget.org/packages/Selenium.Support/
最短的代码
The shortest code