Selenium2+python自动化58-读取Excel数据(xlrd)转载
Posted 小曹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium2+python自动化58-读取Excel数据(xlrd)转载相关的知识,希望对你有一定的参考价值。
前言
当登录的账号有多个的时候,我们一般用excel存放测试数据,本节课介绍,python读取excel方法,并保存为字典格式。
一、环境准备
1.先安装xlrd模块,打开cmd,输入pip install xlrd在线安装
>>pip install xlrd
二、基本操作
1.exlce基本操作方法如下
# 打开exlce表格,参数是文件路径
data = xlrd.open_workbook(\'test.xlsx\')
# table = data.sheets()[0] # 通过索引顺序获取
# table = data.sheet_by_index(0) # 通过索引顺序获取
table = data.sheet_by_name(u\'Sheet1\') # 通过名称获取
nrows = table.nrows # 获取总行数
ncols = table.ncols # 获取总列数
# 获取一行或一列的值,参数是第几行
print table.row_values(0) # 获取第一行值
print table.col_values(0) # 获取第一列值
三、excel存放数据
1.在excel中存放数据,第一行为标题,也就是对应字典里面的key值,如:username,password
2.如果excel数据中有纯数字的一定要右键》设置单元格格式》文本格式,要不然读取的数据是浮点数
(先设置单元格格式后编辑,编辑成功左上角有个小三角图标)
四、封装读取方法
1.最终读取的数据是多个字典的list类型数据,第一行数据就是字典里的key值,从第二行开始一一对应value值
2.封装好后的代码如下
# coding:utf-8
import xlrd
class ExcelUtil():
def __init__(self, excelPath, sheetName):
self.data = xlrd.open_workbook(excelPath)
self.table = self.data.sheet_by_name(sheetName)
# 获取第一行作为key值
self.keys = self.table.row_values(0)
# 获取总行数
self.rowNum = self.table.nrows
# 获取总列数
self.colNum = self.table.ncols
def dict_data(self):
if self.rowNum <= 1:
print("总行数小于1")
else:
r = []
j=1
for i in range(self.rowNum-1):
s = {}
# 从第二行取对应values值
values = self.table.row_values(j)
for x in range(self.colNum):
s[self.keys[x]] = values[x]
r.append(s)
j+=1
return r
if __name__ == "__main__":
filepath = "D:\\\\test\\\\web-project\\\\5ke\\\\testdata.xlsx"
sheetName = "Sheet1"
data = ExcelUtil(filepath, sheetName)
print data.dict_data()
运行结果:
[{u\'username\': u\'python\\u7fa4\', u\'password\': u\'226296743\'},
{u\'username\': u\'selenium\\u7fa4\', u\'password\': u\'232607095\'},
{u\'username\': u\'appium\\u7fa4\', u\'password\': u\'512200893\'}]
以上是关于Selenium2+python自动化58-读取Excel数据(xlrd)转载的主要内容,如果未能解决你的问题,请参考以下文章
Selenium2+python自动化58-读取Excel数据(xlrd)转载
Selenium2+Python3.6实战:读取Excel文件
Selenium2+python自动化20-Excle数据参数化
Selenium2+python自动化20-Excel数据参数化转载