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

回答