Selenium读取文件大全txt、excel、csv...中文英文字符...
来源:互联网 发布:计算机编程教学视频 编辑:程序博客网 时间:2024/05/17 07:24
这段时间因为工作需要,要熟悉UI层的自动化测试工具,笔者对自动化测试在之前并无了解,但是一番了解下后发现现在关于web UI 最受欢迎的莫过于Selenium了,当然RobotFramework也名列前茅,而参数化也是尤为重要的一点,笔者这几天实现参数化的时候总是遇到很多中文编码、以及数字呈浮点数显示的情况,这里就来谈论一下关于Selenium 如何读取Txt、Excel、Csv..等文件以及如何获得我们想要的格式数据
一 、读取TXT文档
Txt算是比较简单的文档了,不多说直接上代码:
1.单独的关键字,直接读取
#coding utf-8file_info = open('Testing.txt', 'r')values = file_info.readlines()file_info.close()for item in values: print item
结果:
2.两列关键字,以‘,’逗号分隔
代码部分:
file_info = open('Testing.txt', 'r')values = file_info.readlines()file_info.close()for item in values: data1 = item.split(',')[0]#第一列 data2 = item.split(',')[1]#第二列 print data1, data2
结果如下:
Txt格式的是比较简单的,但是如果有多组数据呢?用spilt拆分就没那么方便了,因为以split方法一次只能将字符串拆分为两段,那么针对多组数据就要用到csv和excel啦。
二、读取csv文档
注意csv文档的建立最好是在excel中另存为——>选择csv格式,而不是直接改后缀。
读取csv文档我们需要引入csv库,即import csv
先看一下我们需要读取的文档:
OK,接下来我们要访问这些数据:
import csv #访问csv文件需要csv库的支持(本身自带),直接导入即可my_file = 'Testing.csv' #文件名values = csv.reader(open(my_file, 'rb'))for item in values: print item #整行读 print item[0], item[1], item[2] #一个数据一个数据的读
使用item[Index]可以访问具体的那个数据,结果如下:
看起来不错,很能满足我们的需求,可以方便的读取多行多列数据,而且针对单个的数据访问也十分方便。但是,But…有些人可能试过,csv是不支持中文的,自己写进中文进去打开就有可能是一堆编码,那么Excel就登场了~
三、读取Excel文件
笔者个人觉得Excel是比较完美的,改进了CSV不支持中文的情况,好的,看一下我们的例子:
在Selenium使用Excel读取数据的话我们是需要下载Excel库文件的,即xlrd文件,下载链接:https://pypi.python.org/pypi/xlrd
下载完成解压,在当前目录cmd,输入python setup.py install即可安装成功,也可以直接cmd,输入pip命令:pip install xlrd
安装完成后,直接导入xlrd即可使用相关操作Excel的方法:
import xlrdmy_file = xlrd.open_workbook('Testing.xls')#得到文件table = my_file.sheets()[0]#得到sheet页nrows = table.nrows #总行数ncols = table.ncols #总列数i = 0while i < nrows: print table.row_values(i)[0], table.row_values(i)[1] i = i+1
结果:
OK,Excel能够解决中文的问题,但是此处需要注意,不能直接读取整行的数据,只能将数据分开一个一个的读取,例如以上代码换成下面这样:
while i < nrows: print table.row_values(i) #读取整行 i = i+1
结果就会出现编码问题:
可能大家还注意到了,这里第二列的数字1990,在Selenium就变成了浮点型数字1999.0,之前看过一个解决办法是在Excel文档中,选中单元格,右键单元格格式——>文本.但是笔者发现这样并不能解决问题,至于数字目前笔者的解决办法是代码判断,如果是纯数字就转化为int型。
while i < nrows: cell = table.row_values(i)[1] #得到数字列数据 ctype = table.cell(i, 1).ctype #得到数字列数据的格式 if ctype == 2 and cell % 1 == 0: #判断是否是纯数字 cell = int(cell) #是纯数字就转化位int类型 print table.row_values(i)[0], cell i = i+1
接下来我们再看结果:
OK,这下圆满啦。
*注意:
1.csv或者excel格式的文件在最初设置数据的时候都要右键——>单元格格式——>文本
2.excel文件的格式必须是后缀名为*.xls
3.excel文档的ctype 分为5种,对应分别是:
empty: 0
string: 1
number:2
date: 3
boolean :4
error:5
- Selenium读取文件大全txt、excel、csv...中文英文字符...
- C#读取CSV,Excel,Txt文件,删除文件,拷贝文件
- 读取.txt .csv文件
- 读取csv.txt文件
- 读取文件(.txt、.excel、.csv),在c++、matlab环境中
- Python 读取EXCEL(XLS、CSV)写入txt文件
- 读取txt,csv等文件
- python读取txt、csv文件
- Python读取txt、csv文件
- Selenium+java读取文件txt
- [转]C#读取CSV,Excel,Txt文件,删除文件,拷贝文件
- python导入TXT、Excel、csv文件
- Python读取文件小结(csv,txt)
- 加载读取CSV,txt逗号分格值文件
- 英文版Excel 2007打开含中文的csv文件乱码如何解决
- 英文版Excel打开含中文的csv文件乱码的解决办法
- 文件读取方法(txt.excel)
- java学习笔记_将中文字符导出txt文档_从txt文档读取文件
- Quartz使用总结
- 用Eclipse轻松解决算法algorithms 4 第一个二分查找法需要重定向和读取指定文件路径
- 对象引用与对象的区别
- 标准差公式中,分母是"n"还是"n-1"?
- mysql 终端神器
- Selenium读取文件大全txt、excel、csv...中文英文字符...
- 算法导论------渐近记号Θ、Ο、o、Ω、ω详解
- Maven的简单使用
- VMware中Ubuntu系统不全屏问题
- 数据结构与算法基础————基本概念和术语
- JVM习题(练石成金培训材料)
- GAN_Generative Adversarial Nets_阅读笔记
- 循环链表
- Java设计模式_(创建型)_抽象工厂模式