使用硒存储用户名和密码时出现问题

时间:2019-12-03 12:41:43

标签: python selenium selenium-webdriver

我对python和编程完全陌生。

在使用Selenium chrome Web驱动程序时,我想保存我的用户名和密码。

我已经添加了一些行来填充登录页面上的字段,但是它不会像通常的chrome浏览器那样存储输入。

我还选中了复选框,以便在单击“登录”之前将我的登录信息保存在这台计算机上,但是仍然每次都要求输入用户名和密码,以及发送到我的邮件地址的身份验证代码。

这里的问题是,用户不必在代码中输入用户名+密码,这样每个人都可以看到它。我想让用户手动输入用户名和密码,并且仅通过chrome网络驱动程序进行首次启动,并使其可以检查“保存我的数据,而不再在这台计算机上再次询问”。

这是我的代码的样子:

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()

此后,该网页要求我输入我的安全令牌,该令牌会发送到我的电子邮件帐户。

这就是我要避免的。由于完成的程序将仅在其计算机上运行,​​因此可以安全地实际保存这些数据,而不必一遍又一遍地重新输入所有内容。

1 个答案:

答案 0 :(得分:0)

我了解OP正在试图告诉他的问题。

但是,当前,网络驱动程序已配置为始终在NEW SESSION / NEW PROFILE上运行。 意思是,您执行的每个实例都始终以NEW / FRESH的形式启动浏览器,因此您在先前测试中所做的一切都不会保留。

但是,有一种方法,例如在Chrome Webdriver上,您可以使用硒功能并从本地计算机添加现有的Chrome配置文件。 确保先预加载并保存凭据,然后再将其手动保存在浏览器中。

请在您的网络驱动程序功能上使用user-data-dir参数以及您的Google chrome配置文件的完整路径。

例如在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);