【Python+Selenium】 实现对excel文件的读写操作,轻轻松松一步到位

前言

利用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) #保存

 

最后

你学会了吗?这么简单别跟我说没有学会,有问题的记得点赞评论哟!!学习的事马虎不得滴,这一篇到这里就结束了,下一篇

再见…

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【Python+Selenium】 实现对excel文件的读写操作,轻轻松松一步到位 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • 【Python】控制结构,这个教程一般人我不给

    前言 还有多少人不会python的控制结构,在评论区告诉我,让我一个个点名提问。今天,就教会你python的控制结构… 分行与缩进 分行 •一条语句占用一行 •过长的语句可以占用多行,使用\或()控制换行 •[]、{}、()可以直接跨越多行,在列表、字典、元组中需要换行的时候也可以不用添加续行符 a = 1 b = 2 c =a +b income = (g…

    Python开发 2023年4月2日
    00
  • Python 实现校园网自动登录

    背景 我在的学校校园网登录是web式的,即随便打开一个网页就会自动跳转到登录页面,然后输入用户名密码,点登录,便可以上网了。 但这种登录方式有个缺点:登录状态不会一直保持下去。即过一段时间就会掉线,然后你需要重新登陆才行。这个时间大概是一天。 这就蛋疼了,想让实验室的电脑随时保持联网状态怎么办呢?(有时候我需要远程我的电脑) 这个时候可以用python脚本解…

    Python开发 2023年4月2日
    00
  • 【无敌Python 】增强视频画质,就应该这么做

    原理 不知道大家小时候有没有玩过这个? 最早的动画就是这么形成的,记得小时候还有这种小书卖。 其实视频的原理也是这样,一个视频是由很多张图片组成的,一个图片是一帧。所以我们要对视频进行画质增强,可以拆分成对 每一帧的图片进行操作,这个操作我们在前面介绍过。 因此,对视频进行画质增强的方法可以分为三步:拆分->处理->合成。 拆分 我们在第一篇文章…

    Python开发 2023年4月2日
    00
  • Python 视频制作神器 — Manim入门篇

    今天分享一篇文章,是关于如何使用 Manim 这个工具 Python 工具库来制作视频的。 据我所知,目前应该是没有专门的书籍和教程来介绍这个工具的。至于教程,不同版本的Manim有一部分文档,其中 Manim社区 版的文档相对而言要完善些。 本次仅介绍 Manim 中 文本 的使用,使用的版本为 Manim Community v0.14.0,本文内容主要…

    Python开发 2023年4月2日
    00
  • 基于 Python 的地理空间绘图(附源码)

    前言 大部分情况下,地理绘图可使用 Arcgis 等工具实现。但正版的 Arcgis 并非所有人可以承受。本文基于 Python 的 cartopy 和 matplotlib 等库,为地理空间绘图的代码实现提供参考。 所有所需库如下: gma、cartopy、matplotlib、numpy   更多内容可转到:地理与气象分析库—-使用指南(点击阅读原文…

    Python开发 2023年4月2日
    00
  • Python 最有用的25个代码段

    前言 Python是一种通用的高级编程语言。用它可以做许多事,比如开发桌面 GUI 应用程序、网站和 Web 应用程序等。 作为一种高级编程语言,Python 还可以让你通过处理常见的编程任务来专注应用程序的核心功能。并且,编程语言的简单语法规 则进一步简化了代码库的可读性和应用程序的可维护性。 与其他编程语言相比,Python 的优势在于: 1.与主要平台…

    Python开发 2023年4月2日
    00
  • Python 实现自动刷抖音,解放双手了

    前言 不知道有没有小伙伴跟我一样,每次刷抖音都不想动手,好希望能够有什么东西代替我的手指,我给它一个命令,它就明白我要什么。于 是,我利用空闲时间操作了一下,终于用Python把自动刷抖音给搞出来了,这下真的是解决了我长久以来的困扰… 工具准备 1.Python3.7.7 2.adb(Android debug bridge) 3.uiautomatorvi…

    Python开发 2023年4月2日
    00
  • Python实战项目7个有趣的小游戏

    每天都会分享几个有趣的Python小知识,现在给大家分享几个适合新手练习的小项目,好玩不烧脑,提升技能不在话下。等会就叫你的室友跟你一起VS,轻轻松松成为卷王。 但是问题有三个: 1、你不知道已经有哪些轮子已经造好了,哪个适合你用。有名有姓的的著名轮子就400多个,更别说没名没姓自己在制造中的轮子。 2、确实没重复造轮子,但是在重复制造汽车。包括好多大神写的…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部