0

在我的python項目中,登錄過程由HttpBasicAuth處理程序處理。得到響應後,我應該通過硒加載主頁。如何將HttpAuthentication傳遞給selenium webdriver

它應該如何完成?

它具有基礎。當基本URL由python-selenium加載時,彈出框會要求用戶名和密碼進行驗證。然後進入主頁面。

這裏有兩個步驟:

  • 步驟1:登陸(使用HttpBasicAuth處理)

我使用HttpBasicAuth處理的原因是,當我打開我的網址它會打開一個彈出登錄窗口。由於我們不知道Selenium處理彈出窗口模式對話窗口的控制權,我們切換到HttpAuthentication。

(這是我需要建議的一部分。)

  • 步驟2:獲取響應時,過程在硒中的其餘步驟後。

在這個中間部分,我使用HttpBasicAuth處理程序的響應進行身份驗證,以便Selenium可以繼續執行測試中的其他步驟。

我該如何在Selenium中對網站進行身份驗證?我是否必須使用HttpBasicAuthentication Response爲Selenium webdriver創建cookie以跳過登錄框?

+0

[此問題]可能的重複(http://stackoverflow.com/questions/5672407/basic-authentication-in-selenium-2-set-up-for-firefoxdriver-chromedriver-and)。查看[Selenium常見問題](http://wiki.openqa.org/display/SEL/Selenium+Core+FAQ#SeleniumCoreFAQ-HowdoIuseSeleniumtologintositesthatsthatHTTPbasicauthentication%28wherethebrowsermakesamodaldialogaskingforcredentials%29%3F)for a answer。 – shamp00 2012-02-14 09:18:06

回答

5

這是一個很容易通過向HTTP響應添加標題解決的問題,不幸的是Selenium2不支持這個功能。

你可以嘗試使用像這樣通過在URL embeddeing的用戶名和密碼:

browser = webdriver.Firefox() # Get local session of firefox 
browser.get("http://myusername:[email protected]") # Load page 

注意這不會對IE(由於安全問題)的工作,但你可以把它通過修改工作註冊表了一下。

根據您的意見,我不太瞭解您的問題。如果按照我指定的方式執行第一個請求,瀏覽器將自動存儲一個特殊的Authorization:標頭,其中包含密碼和用戶名並置和base64編碼。所有其他請求現在將被認證,直到您關閉瀏覽器。

此方法與Selenium 1或Selenium 2沒什麼關係,但具體的瀏覽器支持什麼。 IE是我知道限制這一點的唯一瀏覽器。

+0

Selenium1和Selenium2支持該方法嗎?另外,在標題中我們是否應該添加登錄憑證的詳細信息或相關內容?請讓我簡要地知道老兄。 – Nava 2012-02-13 15:03:43

+0

請參閱我的編輯 – 2012-02-13 15:07:28

+0

非常感謝您的快速回復。很好。 – Nava 2012-02-13 15:16:32

相關問題