前言
利用selenium在做自动化测试的时候,经常会用到数据来做批量测试,常用的方式有读取txt文件,xml文件,csv文件以及excel文
件几种。
使用 excel 来做数据管理时,需要利用 xlrd、xlwt 开源包来读写 excel。
1、安装xlrd、xlwt
pip install xlrd
pip install xlwt
2、对excel表的数据读取操作
在C:\\Users\\Any\\Desktop下,我们有一个名字叫test1的excel文件,里面的Sheet1数据表中有如下数据:
我们期望从上表中获取搜索词,并在百度输入框中进行关键字搜索。首先需要导入xlrd和xlwt,因为运行速度太快,为了方便看清
楚我这边在每输入一次关键词后强制sleep了两秒。
from selenium python学习交流Q群:906715085### import webdriverfrom selenium.webdriver.support. wait import WebDriverWaitfrom selenium. webdriver.support import expected_conditionsfrom selenium.webdriver.common. by import Byimport timeimport xlrd,xlwtif __name__==\"__main__\": driver=webdriver.Chrome() driver.get(\"http://www.baidu.com\") file_test=xlrd.open_workbook(r\"C:\\Users\\Any\\Desktop\\test1.xlsx\")#读取test1.xlsx文件 count=len(file_test.sheets())#获取该文件中的工作簿数 print(\"工作簿总数为:\",count) table1=file_test.sheet_by_name(\"Sheet1\")#根据工作簿名字获取该工作簿的数据 nrows=table1.nrows #获取工作簿行数 ncols=table1.ncols #获取工作簿列数 print(\"Sheet1的行数为:\",nrows,\"列数为:\",ncols) #从第二行开始,遍历Sheet1中的数据(第一行为表头) for i in range(1,nrows): rowvalues=table1.row_values(i) #按行读取数据 key=rowvalues[1] #第一列为序号,我们取第二列的搜索词 print(\"搜索词:\",key) driver.find_element_by_id(\"kw\").clear()#清空搜索框中的内容 driver.find_element_by_id(\"kw\").send_keys(key) #根据搜索词填入百度搜索框 WebDriverWait(driver,3).until(expected_conditions.visibility_of_element_located((By.ID,\"su\")))#显性等待 driver.find_element_by_id(\"su\").click()#点击百度一下按钮 time.sleep(2) driver.quit()
运行之后就会看到print出来的数据如上,可以确认我们的数据是没错的。print一下也可以方便调试。从浏览器中也可以直观的感
受到整个搜索过程的。
对工作簿的读操作还有很多,如下有一下较为常用的几个。
打开文件
data = xlrd.open_workbook(\"file_path\") #打开文件
获取一个工作簿
方式也有几种,上面代码我们是通过工作簿的名字进行获取的。
table=data.sheets()[0] #通过索引顺序获取table=data.sheet_by_index(0) #通过索引顺序获取table=data.sheet_by_name(u\"name\") #通过名称获取
获取某个工作簿的行列数
table.nrows #获取行数 table.nrows #获取列数
获取某个工作簿的行列值(数组)
table.row_values(i) #获取某行值 table.col_values(i) #获取某列值
获取某个单元格的值
cell_A1 = table.cell(0,0).value #获取A1单元格的值 cell_A1 = table.row(0)[0].value #通过行索引单元格A1的值 cell_A1 = table.col(0)[0].value #通过列索引单元格A1的值
3、对Excel文件的写操作
import xlrd,xlwtif __name__==\"__main__\": wookbook = xlwt.Workbook() #创建工作簿 sheet1 = wookbook.add_sheet(\'Sheet_one\',cell_overwrite_ok=True) #创建sheet,名字为Sheet_one headlist = [\'序号\',\'关键字\',\'备注\'] #表头数据 row = 0 col = 0 #写入表头数据 for head in headlist: sheet1.write(row,col,head) col=col+1 #写入4行数据 len = 5 for i in range(1,len): sheet1.write(i,0,i) sheet1.write(i,1,\"搜索关键字{}\".format(i)) sheet1.write(i,2,\" \") print(\"写入第{}行数据\".format(i)) wookbook.save(r\"C:\\Users\\Any\\Desktop\\xlwt_text.xlsx\") #保存文件,命名为xlwt_text.xlsx
运行之后,可以看到桌面上生成了一个xlwt_text.xlsx的文件,打开看到里面的数据,sheet名和其内容都是我们刚刚输入的数据
对于Excel的数据写入操作,有以下几个常用的几个。
创建excel文件 wookbook = xlwt.Workbook() #创建工作簿 创建Sheet sheet = wookbook.add_sheet(\'Sheet_name\',cell_overwrite_ok=True) #创建sheet 写入单元格数据 sheet.write(row,col,data) #写入该单元格数据 保存文件 wookbook.save(file_path) #保存
最后
你学会了吗?这么简单别跟我说没有学会,有问题的记得点赞评论哟!!学习的事马虎不得滴,这一篇到这里就结束了,下一篇
再见…
来源:https://www.cnblogs.com/1234567FENG/p/16397178.html
本站部分图文来源于网络,如有侵权请联系删除。