是否可以使用 Selenium 登錄使用 2 因素身份驗證方法的站點(例如銀行的 BankID)?driver = webdriver.Firefox(executable_path=r"C:\Program Files (x86)\geckodriver.exe")# driver.implicitly_wait(2)driver.maximize_window()driver.get("theBankID-page")try: personNumber = WebDriverWait(driver, 5).until( EC.presence_of_element_located((By.NAME, "personNumber"))) personNumber.send_keys("personNumber") personNumber.send_keys(Keys.RETURN)except TimeoutException: print("Failed to load BankID-page")上面的代碼使您可以使用例如您的手機作為輸入密碼的第二個因素來手動登錄該網站。但是,如果我轉到一個新站點,并且當我轉到該站點上的新頁面時,該站點正在請求使用 BankID 新登錄,是否可以存儲第一次登錄會話?因此,即使我轉到網站上的新頁面,它也會持續存在。
2 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
請查看他們的官方文檔:https://www.selenium.dev/documentation/en/worst_practices/two_factor_authentication/
它建議您禁用它,或者是否可以使用其他可行的方法登錄。

DIEA
TA貢獻1820條經驗 獲得超2個贊
我不知道什么是BankID
二因素身份驗證。
如果您正在使用,1password
可以使用cli 工具來獲取代碼。?https://1password.community/discussion/102228/how-do-i-retrieve-an-otp-token-value-via-1password-cli
我相信其他密碼管理器也提供類似的 api 來做。
如果您擁有共享密鑰,您還可以使用https://github.com/pyauth/pyotp獲取 otp。
您也許能夠保留登錄會話,但這完全取決于站點的實現。
例如,如果網站使用 cookie。然后,您只需從登錄的會話中獲取并設置 cookie 即可。
https://www.selenium.dev/documentation/en/support_packages/working_with_cookies/
添加回答
舉報
0/150
提交
取消