python - 在 Python 中使用 Selenium,有没有办法在登录在线帐户时使 webdriver/浏览器成为“可识别的设备”?
问题描述
我正在尝试使用 Selenium 制作一个 Python 程序,该程序将打开一个浏览器,登录到我的信用合作社帐户,然后将交易复制到电子表格中,以便我进一步操作。
当我从新设备登录我的帐户时,需要通过向我的手机或电子邮件发送代码来进一步识别。
我可以运行我的脚本并手动处理额外的验证,但即使我选择将浏览器注册为受信任的设备,每次运行脚本时它总是要求进行额外的验证。
我以为我可以让它向我的电子邮件发送代码,然后获取电子邮件,然后输入代码,但这似乎比必要的复杂。
有没有办法成功注册 Selenium 运行的浏览器?
也许浏览器中有一些 ID 可用于网站注册设备,而 Selenium 每次都使用一个新 ID?
任何帮助深表感谢。
到目前为止,这是我的代码,我知道它现在非常基本:(用 Python 3.8 编写)
from selenium import webdriver
import time
#Open Chrome Browser
browser = webdriver.Chrome(r'path to my driver...\chromedriver.exe')
#Navigate to CU
browser.get("CU's Website")
#Let website load, not sure if this is necessary or not
time.sleep(3)
#Get Paths for Input Fields (Is there a way to hardocde these paths? Does it matter?)
field_user = browser.find_element_by_css_selector("#userid")
field_password = browser.find_element_by_css_selector("#password")
field_enter = browser.find_element_by_css_selector("#LoginForm > input[type=image]:nth-child(8)")
#Enter Username
field_user.send_keys('My username')
#Enter Password (What is a good/secure way to store password here?
field_password.send_keys('My password')
#Submit Credentials
field_enter.click()
解决方案
推荐阅读
- c# - ExpandoObject 中的对象,如何检查任何对象是否包含“假”
- android - 从标记的信息窗口获取数据(标题)并放在对话框中
- python - Python 游戏对象安装
- python - 为什么我会得到反向双向链表?
- java - 启用 java 安全管理器时获取系统属性“os.arch”时权限被拒绝
- python - Lambda 返回 ConditionalCheckFailedException 而不是更新项目
- styled-components - 样式化的组件输出为 CSS 文件
- python - 如何使用 python 和 pandas 运行 sql 查询
- angular - 角度垫选择,将选定的值发送到函数
- javascript - 是否有必要将异步放入蓝鸟承诺中