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

是否可以使用 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 新登录,是否可以存储第一次登录会话?因此,即使我转到网站上的新页面,它也会持续存在。


精慕HU
浏览 130回答 2
2回答

蛊毒传说

请查看他们的官方文档:https://www.selenium.dev/documentation/en/worst_practices/two_factor_authentication/它建议您禁用它,或者是否可以使用其他可行的方法登录。

DIEA

我不知道什么是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/
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python