簡體   English   中英

Selenium + Python-沒有URL用戶名和密碼參數的“處理身份驗證”對話框

[英]Selenium + Python - Handling Authentication Dialog without URL username and password params

我需要在不提供URL參數的情況下進行身份驗證。 這意味着,我必須手動處理警報(這意味着切換到警報,進行身份驗證,切換回上一個窗口),並使用Selenium Alert Class提供的authenticate方法。

這是我用來處理警報的功能:

def login_browser_alert(driver):
    WebDriverWait(driver, 3).until(EC.alert_is_present())
    current_window = driver.window_handles[0]
    driver.switch_to.alert.authenticate('admin', 'admin')
    driver.switch_to.window(current_window)

這是我導航到頁面的方式:

def goto_page(self):
        self.driver.get(self.URL)
        login_browser_alert(self.driver)

我使用http://the-internet.herokuapp.com/basic_auth作為虛擬身份驗證示例。 憑據是用戶:“ admin”密碼:“ admin”

問題:

什么都沒發生。 對話框僅保留在那里,並且不會在任何字段中發送輸入。 什么都不會被點擊。 它只是掛在那里。

我發現的所有解決方案都只是像這樣在URL中傳遞參數:

HTTP://管理:admin@the-internet.herokuapp.com/basic_auth

由於某些原因,我不能針對我當前正在從事的項目。 所以,不,這不會解決我的問題...

有人遇到過類似的問題嗎? 您如何解決此問題?

編輯:

在此鏈接中,您可以找到有關此問題的更多信息。

https://github.com/SeleniumHQ/selenium/issues/5471#issuecomment-364457555

Alert類中的身份驗證方法只是實驗性的。 似乎唯一的方法確實是使用URL參數。

Alert#authenticate()可能什么也不做。 它已從Ruby和Java綁定中刪除,並且在Python綁定中沒有針對它的測試。

正如您在其他地方看到的那樣,唯一的選擇是在用戶請求的URL中包含用戶名和密碼作為username:password@host

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM