per*_*000 7 c# selenium ntlm selenium-server selenium-webdriver
我想在C#测试中使用Selenium HtmlUnit驱动程序.据我所知,在C#中使用HtmlUnit驱动程序的唯一方法是通过Selenium服务器和RemoteWebDriver:
var driver = new OpenQA.Selenium.Remote.RemoteWebDriver(
OpenQA.Selenium.Remote.DesiredCapabilities.HtmlUnitWithJavaScript());
Run Code Online (Sandbox Code Playgroud)
但是,我还需要使用NTLM身份验证.在Java中使用非远程驱动程序,它显然可以像这样配置:
WebDriver driver = new HtmlUnitDriver() {
protected WebClient modifyWebClient(WebClient client) {
// Does nothing here to be overridden.
DefaultCredentialsProvider creds = new DefaultCredentialsProvider();
creds.addNTLMCredentials("userName", "password", null, -1, "myComputerName", "myDomain");
client.setCredentialsProvider(creds);
return client;
}
}
Run Code Online (Sandbox Code Playgroud)
(来源:https://groups.google.com/forum/#!topic/ webdriver/ ktIWIs5m0mQ)
但是,由于我使用C#,这显然无法解决我的问题.我怎样才能做到这一点 ?(我可以成功使用Chrome,但我想使用HtmlUnit来提高速度).
谢谢 !
为了传递凭据,您需要重载 的modifyWebClient,HtmlUnitDriver如您在讨论链接1中看到的那样。
对于 .NET 开发人员来说,使用 HtmlUnitDriver 的唯一方法是通过.NET 2RemoteWebDriver的 HtmlUnit 包装器的讨论,开发人员选择不公开所有驱动程序类:HtmlUnit
我讨厌在 .NET 绑定中添加任何更多的依赖项...如果您执意要使用 HtmlUnit 作为您选择的无头浏览器,您始终可以通过 RemoteWebDriver 使用它
因此,您不能将 NTLM 或任何其他凭据方法与 RemoteWebDriver 一起使用。
如果您愿意做并维护这项工作,您可以转换所有 HtmlUnit 代码,如@JasonPlutext 的答案3的第二个链接中详细说明。
| 归档时间: |
|
| 查看次数: |
1131 次 |
| 最近记录: |