python - 有没有办法使用 python selenium 创建一个文本文件来编辑用户名和密码
问题描述
我想使用 python selenium 创建脚本,所以当我打开文本文件并在那里编辑详细信息时,脚本应该根据它工作,但它不工作。
import time
from selenium import webdriver
driver = webdriver.Chrome("C:/Users/deepak/PycharmProjects/chromedriver.exe")
with open('account details.txt', 'r') as file:
for details in file:
"Username, Password, Trainer Battle ID = details.split(':')"
driver.get("https://www.tppcrpg.net/login.php")
# identify username, password and signin elements
driver.find_element_by_name("LoginID").send_keys("Username")
driver.find_element_by_name("NewPass").send_keys("Password")
driver.find_element_by_class_name("submit").click()
driver.get("https://www.tppcrpg.net/battle_trainer.php")
# identify Enter Trainer Name/Number
driver.find_element_by_name("Trainer").send_keys("Trainer Battle ID")
driver.find_element_by_class_name("submit").click()
解决方案
您需要从行中删除引号"Username, Password, Trainer Battle ID = details.split(':')"
并使其像Username, Password, Trainer_Battle_ID = details.split(':')
. 然后替换行,
driver.find_element_by_name("LoginID").send_keys("Username")
driver.find_element_by_name("NewPass").send_keys("Password")
driver.find_element_by_name("Trainer").send_keys("Trainer Battle ID")
有了这个:
driver.find_element_by_name("LoginID").send_keys(Username)
driver.find_element_by_name("NewPass").send_keys(Password)
driver.find_element_by_name("Trainer").send_keys(Trainer_Battle_ID)
此外,您正在错误地读取文本文件。首先你需要在“\n”的基础上拆分数据。然后您应该使用“:”拆分该列表的每个元素。这是您可以实现的方式:
Username = ""
Password = ""
Trainer_Battle_ID = ""
with open('account_details.txt', 'r') as file:
details = file.read().split('\n')
for i in range(0, len(details)):
details[i] = details[i].split(':')
Username = details[0][1]
Password = details[1][1]
Trainer_Battle_ID = details[2][1]
driver.get("https://www.tppcrpg.net/login.php")
# identify username, password and signin elements
driver.find_element_by_name("LoginID").send_keys(Username)
driver.find_element_by_name("NewPass").send_keys(Password)
driver.find_element_by_class_name("submit").click()
driver.get("https://www.tppcrpg.net/battle_trainer.php")
# identify Enter Trainer Name/Number
driver.find_element_by_name("Trainer").send_keys(Trainer_Battle_ID)
driver.find_element_by_class_name("submit").click()
推荐阅读
- vue.js - 如何更改 Vue Material 中的 HTML5 “md-” 前缀?
- parse-platform - 在 Parse 平台上使用 createdAt 和 updatedAt 发布新记录
- java - 如何使用名称检索 java 线程?
- python - 如何检查字符串中的数字?
- vb.net - 如何在定期定时的 VB.NET Windows 服务中计算 VB6 exe 的处理时间?
- angular - 如何更改角度 Ag 网格列的标题名称
- python - 声明 Flask 蓝图时查询
- kubernetes - Kubenetes & windows 容器 & msbuild 性能
- c++ - C++矩阵*向量乘法中的错误
- python - 如何使用 PyGitHib repo.create_file