是否可以使用 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
提交
取消