0

我见过这个问题已被问了几次,并提出了很多解决方案 - 但他们都没有为RemoteWebDriver(即:使用Selenium网格)工作。他们通常以使用本地ChromeDriver/FirefoxDriver/IEDriver类为中心。Selenium RemoteWebDriver和Windows身份验证对话框

我正在使用.NET绑定,顺便说一句:)。

我想要做的事情非常简单(根据需求)。我有一个Selenium服务器安装程序,目前正在使用RemoteWebDriver在各个站点上执行自动UI测试。这个设置工作正常。

但是,有些网站使用NTLM/Windows身份验证,我们需要开始为这些网站编写自动化测试。但是,据我所知,这没有解决办法。

我已经看到了下面的“解决方案”,但 - 除非有人可以纠正我 - 他们要么不工作始终,或使用RemoteWebDriver将无法正常工作:

  • 使用IAlert功能(如here) 。然而,这不是在.NET绑定中实现的,并且据我所知,并不适用于所有浏览器。
    • 使用机器人API与弹出框交互(如here)。但这是为了在本地机器上运行,并且不受RemoteWebDriver支持。
    • 使用AutoIt做类似的事情的机器人API。但是,这不能使用RemoteWebDriver。
    • 在URL中传递凭证(例如:http://username:[email protected])。但是,这不适用于Windows身份验证 - 只是普通的HTTP基本身份验证。

我不能真正看到任何其他的解决方案,除非其他人可以帮忙吗?

解决方法目前是登录到Selenium服务器,转到每个浏览器中的网站并保存凭据。但这并不理想,并为每个测试增加了一定程度的手动交互。

任何帮助将不胜感激:)。

+0

您的代理解决方案是一个很好的解决方案。我只是指出,'IAlert'接口上的认证方法当然是在.NET绑定中实现的。该方法被命名为“SetAuthenticationCredentials”。然而,你绝对正确的是它没有在所有的浏览器中实现(只有IE,在写这篇文章的时候吃了)。 – JimEvans

+0

谢谢@JimEvans - 我纠正了有关在.NET绑定中实现的IAlert的问题:)。有太多的旧博客文章,当它不是它可以相当混乱!感谢澄清虽然。 – stevehayter

回答