为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Selenium 和 Python 登录 2FA 网站、移动 BankID?

如何使用 Selenium 和 Python 登录 2FA 网站、移动 BankID?

精慕HU 2023-12-12 21:01:54
是否可以使用 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/

它建议您禁用它,或者是否可以使用其他可行的方法登录。


查看完整回答
反对 回复 2023-12-12
?
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/


查看完整回答
反对 回复 2023-12-12
  • 2 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信