web端自动化——Python读取txt文件、csv文件、xml文件
1、读取txt文件
txt文件是我们经常操作的文件类型,Python提供了以下几种读取txt文件的方式。
1)read(): 读取整个文件。
2)readline(): 读取一行数据。
3)readlines():读取所有行的数据。
首先,使用找txt文件来存放用户名和密码数据,并通过读取该文件中的数据作为用例的测试数据。
open()方法一般返回一个file文件对象 例子:
f=open(file,mode='r',encoding=None)
open()方法里的参数还有其他,一定要用户设定的只有文件路径。在这里我们讨论一下mode和encoding这两个参数。 第一个参数是string类型的文件地址,第二次参数代表文件被打开的模式。
有以下几种模式:
‘r’:(read)文件只能被读(默认)
‘w’:(write)文件只能被写(如果写入一个已存在的文件中,原来的数据会被删除)
‘x’:创建新文件,如果文件原本存在则不创建
‘a’:(append)自动添加新内容到文件结尾
‘b’:(binary)二进制模式
‘t’:(text)文本模式(默认)
‘+’:读和写
‘U’:(universal newlines mode)通用换行模式
当使用open()方法的时候,如果不设定参数encoding的值,该方法会默认encoding为系统默认的编码格式。
首先通过open()方法以读(“r” )的形式打开此user_info.txt文件,使用readlines()方法按行读取txt文件,将获取到的每一行数据通过split()方法拆分出用户名和密码。
split()可以将一个字符串通过某一个字符为分割点拆分成左右两部分。
备注:一定要把做好的txt文件放在项目里面。
2、读取csv文件
那么新的问题来了,假设现在每次要读取的是一组用户数据,这一组数据包括用户名、 邮箱、年龄、性别等信息,这时再使用txt文件来存放这些数据,读取起来就没那么方便了。 对于这种类型的数据可以通过CSV文件来存放。
创建info.csv文件,首先通过WPS表格或Excel创建表格,文件另存为CSV格式进行保存。注意不要通过直接修改文件的后缀名来创建csv文件,这样创建的并非真正的csv类型的文件。
通过这种csv文件来存放数据可以方便地解决读取多列数据的问题。
首先导入cvs模块,通过reader()方法读取csv文件。
备注:一定要把做好的csv文件放在项目里面。
3、读取xml文件
有时候我们需要读取的数据是不规则的,这时候就可以考虑选择使用XML 文件来存放这些信息。例如,我们需要一个配置文件来配置当前自动化测试脚本的url、浏览器、登录的用户名和密码等。
什么是XML文件?
xml文件和html文件一样,实际上是一个文本文件。显然大家立刻就会明白,创建xml文件最普通的工具和html一样,就是“记事本”了。
xml目的是用来保存数据的,并且便于程序快速读取,打个比方,xml文件就像是txt文本文档,放在程序里面,供程序使用,这样可以避免把这些数据放在内存里面。 html是网页的页面语言,你上网打开的多数页面都是html页面,html是属于静态页面,主要目的是用来展示用的(文字,图片,画面等信息)。 xml跟html都属于标记语言,也就是最后两个字母ml(marked language),他们俩遵循相同的语言规范。
先创建xml文件如下:
首先导入xml的minidom模块,用来处理XML文件,parse()用于打开一个XML文件, documentElement用于得到XML文件的唯一根元素。
(每一个节点都有它的nodeName、nodeValue、nodeType等属性。nodeName为节点名称,nodeValue为此为节点的值,只对文本节点有效,nodeType为节点的类型。)
getElementsByTagName可以通过标签名获取标签,它所获取的对象是以数组形式存放。假如“login”和“province”标签在info.xml文件中有多个,则可以通过指定数组的下标的方式获取某个具体标签。
getAttribute()方法用于获取元素的属性值。
firstChild属性返回被选节点的第一个子节点。data表示获取该节点的数据,它和 WebDriver中提供的text方法类似。
运行打印出来的结果如下:
info
None
1
browser
login
province
admin
123456
guest
654321
province
广东
深圳
珠海
备注:一定要把做好的xml文件放在项目里面。
web端自动化——Python读取txt文件、csv文件、xml文件的更多相关文章
- python读取txt、csv和excel文件
一.python读取txt文件:(思路:先打开文件,读取文件,最后用for循环输出内容) fp = open('test.txt','r') lines = fp.readlines() fp.clo ...
- python读取txt、csv、xml
读取txt,无需引入任何包: user_file = open('user_info.txt','r') lines = user_file.readlines() user_file.close() ...
- web端自动化——Python的smtplib发送电子邮件
SMTP (Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. Python的smtplib模块提 ...
- web端自动化——python多线程
Python通过两个标准库thread和threading提供对线程的支持.thread提供了低级别的.原始的线程以及一个简单的锁.threading基于Java的线程模型设计. 锁(Lock)条件变 ...
- python读取与写入csv,txt格式文件
python读取与写入csv,txt格式文件 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中.将csv文件中的数据直接读取为dict类型和DataFrame是非常方便也很 ...
- Python读取txt文件
Python读取txt文件,有两种方式: (1)逐行读取 data=open("data.txt") line=data.readline() while line: print ...
- python读取txt批量创建文件
python读取txt批量创建文件 pythonbatchfile 前几天有个小问题, 需要批量建立很多文件夹,, 所以手动写了个小的脚本, 后续可以直接使用 读取目录文件, 然后直接创建相应的文件 ...
- 接口自动化、移动端、web端自动化如何做?
1.<Python+Appium移动端自动化项目实战>-带您进入APP自动化测试的世界https://yuedu.baidu.com/ebook/765b38a5690203d8ce2f0 ...
- Java读取CSV和XML文件方法
游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ...
随机推荐
- windows api多线程
windows api多线程 原文地址:https://www.cnblogs.com/flowingwind/p/8452693.html 线程是程序中一个单一的顺序控制流程.在单个程序中同时运行 ...
- QtWebEngineWidgets
我用的qt5.10+VS2017,2013应该一样项目属性里手动添加包含目录:(QTDIR)\include\QtWebEngineWidgets,(QTDIR)\include\QtWebChann ...
- AJAX里使用模板引擎
一.概述: 处理响应数据渲染可以使用模板引擎(实际上就是一个API,目的是更容易的将数据渲染到HTML中) 目前市面上有许多模板引擎,可以参考 推荐使用artTemplate,它采用作用域预声明的技术 ...
- CF1214题解
D 因为可以用贡献2把起点终点堵掉,所以答案为0/1/2 0/2简单 1:方格可以理解为分层图,考虑每个能到达终点,起点能到达其的点,标记一下,对角线如果仅存在1则为必经之路 E \(d_i\le n ...
- OpenFOAM设置监测点(探针)
首先准备好我们自己的平常算例文件,本次我们以圆柱绕流的算例来说明用法 然后我们在/opt/openfoam4/etc/caseDicts/postProcessing/probes文件夹下找到prob ...
- 6、vueJs基础知识06
vue动画 transition 之前1.0版本是以 属性的形式展示的 <p transition="fade"></p> .fade-transition ...
- Win10下轻松安装centos7.0(推荐)
Windows10下安装centos7.0虚拟机环境 Windows10自带了一个类似Vmware虚拟化产品Hyper-V管理器 如果没有找到这个的小伙伴可以从菜单中的windows管理工具找到如图: ...
- git只提交修改部分的代码
思路: 先用git status 查找出哪些文件被修改过了,然后 只git commit odin/code/pom.xml 1. $ git status (查看当前更改的代码) On branch ...
- Socket: java Socket的isConnected()、和isClosed()判断是否在线的问题(转)
首先,很多初学者都会用这两个API来判断对方是否在线,但是经过我的实践,此API并不能实时判断是否在线的状态. 经过百度查询资料后,得出结论: 事实上这些方法都是访问socket在内存驻留的状态,当s ...
- Cannot find module 'laravel-elixir'问题解决方法
在用gulp 安装elixir的时候报了这样的错误: Laravel elixir npm error Cannot find module 'laravel-elixir/ingredients/c ...