【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】实现自动扫雷,挑战世界纪录

    前言 大家好,欢迎来到 Crossin的编程教室 ! 今天给大家分享的这个案例是用 Python+OpenCV 实现了自动扫雷,并突破了人类的世界记录。(当然 这不算哈) 咱们废话不多说,先看成果~ 中级 – 0.74秒 3BV/S=60.81 相信许多人很早就知道有扫雷这么一款经典的游(显卡测试)戏(软件),更是有不少人曾听说过中国雷圣,也是中国扫雷第 一…

    Python开发 2023年4月2日
    00
  • Python自动化办公:读取Excel数据并批量生成合同,高效办公,快速回家

    前言 在我们的工作中,面临着大量的重复性工作,通过人工方式处理往往耗时耗力易出错。而Python在自动化办公方面具有极大的优 势,可以解决我们工作中遇到的很多重复性问题,分分钟搞定办公需求。快速下班回家陪老婆… 一、背景 在我们经济交往中,有时会涉及到销售合同的批量制作。比如我们需要根据如下合同数据(Excel),进行批量生成销售合同 (Word)。 二、准…

    Python开发 2023年4月2日
    00
  • Python+AI给老照片上色

    前言 哈喽,大家好。有没有谁跟我一样喜欢老照片的朋友,老照片总是让人感觉有一种情怀,可能这就是怀念吧。有一次无意中看到 了很久很久以前的照片都是黑白的,当时很想给照片添加点颜色,但是不知道怎么搞。今天,我终于发现了怎么去解决这个问 题,想了想,我决定得把这个分享给大家…   今天我们分享用NoGAN的图像增强技术给老照片着色。效果如下: 原图 上色后 NoG…

    Python开发 2023年4月2日
    00
  • 教你用python爬取美女照片,未成年不能学

    又到每天Python小技巧分享的时候了,今天给大家分享的是怎么样去爬取清纯小姐姐照片(没有人会拒绝美女吧,小声说),这篇文章好像有点刺激,未成年的小伙伴就不要进来了。快来看看这些清纯的小姐姐的容颜,话不多说,上教程。 先来看看效果图 不好意思,图片有点辣眼睛,被拦截了,还没有还给我….. import re import requests import …

    Python开发 2023年4月2日
    00
  • 70 行 Python 代码写春联,行书隶书楷书随你选

    前言 相信现在有很多小伙伴都不会写毛笔字了,今天想用python来写一幅春联,不知道有没有人喜欢。该文用的是田英章老师的楷 书,我在网上总共找到了1600个汉字,因此,春联用字被限制在这1600个汉字的小字库中。我个人精力有限,同时受知识产权保 护的限制,不可能制作完整的毛笔字库。那么,能否借用现有的矢量字库,满足朋友们的要求呢?经过一番尝试,发现操作系统 …

    Python开发 2023年4月2日
    00
  • Python爬取站长之家网页信息(附详细源码)

    一、实验目的 在信息时代高速发展的现在,“互联网+”的使用日趋zhanzhang过互联网学习知识,传递思想,沟通交流,在众多数据和用户的碰 撞中,互联网经济应运而生。学会利用网络收集信息是最基本的要求,接下来,我将以“行业网站”——站长之 家为例,通过Python爬取各个网站的信息(主要为名称、Alexa周排名、反链数等)来更直观、准确地分析其中各个网站在互…

    Python开发 2023年4月2日
    00
  • 5 个方便好用的 Python 自动化脚本,拿来就用

    前言 相比大家都听过自动化生产线、自动化办公等词汇,在没有人工干预的情况下,机器可以自己完成各项任务,这大大提升了工作 效率。 编程世界里有各种各样的自动化脚本,来完成不同的任务。 尤其Python非常适合编写自动化脚本,因为它语法简洁易懂,而且有丰富的第三方工具库。 这次我们使用Python来实现几个自动化场景,或许可以用到你的工作中。 1、自动化阅读网页…

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

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

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