python - 使用 selenium 存储用户名和密码的问题
问题描述
我对 python 和编程非常陌生。
我想在使用 selenium chrome web 驱动程序时保存我的用户名和密码。
我添加了一些行来填充登录页面上的字段,但它不会像我通常的 chrome 浏览器那样存储输入。
在单击“登录”之前,我还标记了复选框以将我的登录信息保存在这台计算机上,但它仍然每次都要求输入用户名和密码,以及发送到我的邮件地址的验证码。
这里的问题是,用户不应该在代码中输入用户名+密码,这样每个人都可以看到它。我宁愿让用户手动输入他们的用户名和密码,第一次仅通过 chrome web 驱动程序启动,并让他们可以检查“保存我的数据,不要在这台计算机上再次询问”。
这就是我的代码的样子:
from selenium import webdriver
import time
driver.get("https://www.easports.com/en/fifa/ultimate-team/web-app/"
time.sleep(10)
btn_login_app = driver.find_element_by_xpath("/html/body/main/div/div/div/button[1]")
btn_login_app.click()
txt_field_email = driver.find_element_by_id("email")
txt_field_email.send_keys("MYEMAIL")
txt_field_pass = driver.find_element_by_id("password")
txt_field_pass.send_keys("MYPASSWORD")
btn_login_ea = driver.find_elemnt_by_id("btnLogin")
btn_login_ea.click()
之后,网页要求我输入我的安全令牌,该令牌会发送到我的电子邮件帐户。
这就是我想要避免的。因为完成的程序只会在他们的机器上运行,所以实际保存这些数据是安全的,而不必一遍又一遍地重新输入所有内容。
解决方案
我了解 OP 试图告诉他的问题。
但目前,webdrivers 被配置为始终在 NEW SESSION/NEW PROFILE 上运行。这意味着,您执行的每个实例,您总是以 NEW/FRESH 启动浏览器,因此您在之前的测试中所做的一切都不会保留。
但是,有一种方法,例如在 Chrome webdriver 上,您可以使用 selenium 功能并从本地计算机添加现有的 Chrome 配置文件。确保先在浏览器上预加载并保存凭据以手动保存。
请user-data-dir
在您的网络驱动程序功能上使用参数以及您的谷歌浏览器配置文件的完整路径。
例如在java中:
String chromeProfilePath = "C:\\Users\\Admin\\Local\\Google\\Chrome\\User Data";
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("user-data-dir", chromeProfilePath);
WebDriver driver = new ChromeDriver(chromeOptions);
推荐阅读
- angular - 为什么它被认为是直接修改 NgRx 中的存储值
- node.js - 在reactjs的公共文件夹中动态添加图像
- node.js - 使用 Node.js 将 SQL 查询连接到网站?
- javascript - AWS Cognito AdminGetUser 返回未定义的对象
- java - 如何以编程方式设计线性布局
- google-apps-script - 关闭 Google 表格时将单元格重置为零
- java - SwipeRefreshLayout 无需下拉即可刷新 RecyclerView
- assembly - 从控制台写入文件会产生空格
- python-3.x - 是否有 O(1) 空间 O(k) 运行时间方式来创建和使用 Python 中 k 大小切片上的迭代器
- celery - 如何在 celery 中使用“-b”