Python - 从特定行读取 CSV 单元格 - 行索引在变量中传递
Python - Read CSV cell from specific row - row index is passed in variable
我正在使用 Python Behave to 运行 针对 Web 应用程序的自动化测试。
有一个需要用户名和密码的登录页面。
Behave 场景有不同的登录要求,例如;
Given I am logged on as user1
Then do something
我创建了一个 csv 文件来保存每次登录的用户名和密码,但我无法让它只读取我想要的详细信息。
csv文件是这样的;
usertype,username,password
user1,somename1,somepassword1
user2,somename2,somepassword2
在 Behave 步骤定义中传递了所需的用户;
@given('I am logged on as {login}')
我尝试了以下实现;
def do_login(context, login):
driver = context.browser
user_data = csv.DictReader(open('users.csv'))
for row in user_data:
row['user'] = login
uname = row['username']
pword = row['password']
driver.find_element_by_name('username').send_keys(uname)
driver.find_element_by_name('password').send_keys(pword)
但这只是用 table 中的第一个用户登录。
不知道怎么弄到select只有登录对应的用户名和密码
因此,例如,我将登录名作为 user2 传递,我希望用户名作为 somename2,密码作为 password2。
我读过其他有关从 csv 文件读取的问题,但找不到与此相同的问题。
我对 Python 很陌生。
如果 usertype 与 login 匹配,您应该在 for loop
中使用 if statement
进行证明send_keys
方法。
def do_login(context, login):
driver = context.browser
user_data = csv.DictReader(open('users.csv'))
for row in user_data:
row['user'] = login
uname = row['username']
pword = row['password']
# something like this
if login == row['usertype']:
driver.find_element_by_name('username').send_keys(uname)
driver.find_element_by_name('password').send_keys(pword)
我不太清楚你的问题,但你可以试试这个
只读取Dict格式列表中的csv数据
user_data = csv.DictReader(open('users.csv'))
user_list = [d for d in user_data]
现在您可以按照自己的方式使用此数据:
user_list[row_index][column_name]
我建议最好将您的登录名 information/Logs 存储在任何数据库系统中。
我正在使用 Python Behave to 运行 针对 Web 应用程序的自动化测试。
有一个需要用户名和密码的登录页面。
Behave 场景有不同的登录要求,例如;
Given I am logged on as user1
Then do something
我创建了一个 csv 文件来保存每次登录的用户名和密码,但我无法让它只读取我想要的详细信息。
csv文件是这样的;
usertype,username,password
user1,somename1,somepassword1
user2,somename2,somepassword2
在 Behave 步骤定义中传递了所需的用户;
@given('I am logged on as {login}')
我尝试了以下实现;
def do_login(context, login):
driver = context.browser
user_data = csv.DictReader(open('users.csv'))
for row in user_data:
row['user'] = login
uname = row['username']
pword = row['password']
driver.find_element_by_name('username').send_keys(uname)
driver.find_element_by_name('password').send_keys(pword)
但这只是用 table 中的第一个用户登录。
不知道怎么弄到select只有登录对应的用户名和密码
因此,例如,我将登录名作为 user2 传递,我希望用户名作为 somename2,密码作为 password2。
我读过其他有关从 csv 文件读取的问题,但找不到与此相同的问题。
我对 Python 很陌生。
如果 usertype 与 login 匹配,您应该在 for loop
中使用 if statement
进行证明send_keys
方法。
def do_login(context, login):
driver = context.browser
user_data = csv.DictReader(open('users.csv'))
for row in user_data:
row['user'] = login
uname = row['username']
pword = row['password']
# something like this
if login == row['usertype']:
driver.find_element_by_name('username').send_keys(uname)
driver.find_element_by_name('password').send_keys(pword)
我不太清楚你的问题,但你可以试试这个
只读取Dict格式列表中的csv数据
user_data = csv.DictReader(open('users.csv'))
user_list = [d for d in user_data]
现在您可以按照自己的方式使用此数据:
user_list[row_index][column_name]
我建议最好将您的登录名 information/Logs 存储在任何数据库系统中。