首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Selenium和Python登录2FA站点,移动BankID?

如何使用Selenium和Python登录2FA站点,移动BankID?
EN

Stack Overflow用户
提问于 2020-10-21 14:14:44
回答 2查看 282关注 0票数 1

是否可以使用Selenium登录使用双因素身份验证方法的站点(例如,银行的bankID )?

代码语言:javascript
复制
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进行新的登录,是否可以在第一次将日志存储在会话中?因此,即使我转到站点上的新页面,它也是持久的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-21 14:28:21

请查看他们的官方文档:https://www.selenium.dev/documentation/en/worst_practices/two_factor_authentication/

它建议您禁用它,或者如果您可以使用另一种应该工作的方法登录。

票数 1
EN

Stack Overflow用户

发布于 2020-11-15 11:23:02

我不知道什么是BankID 2因素身份验证。

如果你使用的是1password,你可以使用cli tool来获取代码。https://1password.community/discussion/102228/how-do-i-retrieve-an-otp-token-value-via-1password-cli

我相信其他密码管理器也提供类似的api来做。

您还可以使用https://github.com/pyauth/pyotp来获取动态口令,前提是您拥有共享的密钥。

你也许能够持久化登录的会话,但这完全取决于站点的实现。

例如,如果站点使用cookie。然后,您只需从登录的新会话获取并设置cookie即可。

https://www.selenium.dev/documentation/en/support_packages/working_with_cookies/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64457646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档