首页 > 解决方案 > 有没有办法使用 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()

我在 https://imgur.com/p1Fgseh下面发布了一个文本文件图片

标签: pythonseleniumselenium-webdriver

解决方案


您需要从行中删除引号"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() 

推荐阅读