python自动读取文件代码_基于Python的Web自动化(Selenium)之读取文件

简单介绍

关于数据驱动的形式有很多,我们既可以通过定义变量的方式进行参数化,也可以通过定义数组、字典方式进行参数化,还可以通过读取文件(txt\csv\xml)的方式进行参数化。下面简单介绍下如何读取txt和csv格式,xml在测试过程中好像用的少(可能是我的测试还不够丰富,等有时间也介绍下xml的读取方式)。

实际操作

一、读取txt格式

关于txt格式文件读取,这里不再赘述,可以参考Python三种读取文件方式这篇文章。着重强调一下格式。注意,我们在存储数据的时候为了方便后续读取需要的数据就必须使用特殊的一个符号区分每个不同数据的意义。比如我们需要对“username”和“password”两个字段进行测试,我们就需要在txt文件中构造关于这两个字段的数据。

1240

构造数据

这里创建了三组测试数据,都是用“,”隔开,然后我们根据读取到的数据使用“split”方法根据“,”进行分隔数据,然后再取数据存入变量中使用。当然这个特殊符号根据自己喜好自定,当然使用一下方便好记的符号最好。

二、读取csv格式

如果现在需要测试一组数据包括用户名、年龄、性别、邮箱等信息,此时再使用txt显得有点不方便了。我们可以使用通过创建csv格式文件,读取方式使用csv模块的reader()方法读取,然后通过for循环遍历文件中的数据。

1240

csv文件

1、遍历每一行数据

代码:

# -*- coding: utf-8 -*-

'''

@author: April_Chou

@time: 2018/4/16 20:54

'''

import csv

user_file = csv.reader(open('D:/WorkSpace2/seleniumTest/4/info.csv','r'))

for line in user_file:

print(line)

结果:

['姓名', '年龄', '学号']

['Python', '3', '1']

['Java', '4', '2']

['Ruby', '5', '3']

2、获取某一列数据

代码:

# -*- coding: utf-8 -*-

'''

@author: April_Chou

@time: 2018/4/16 20:54

'''

import csv

user_file = csv.reader(open('D:/WorkSpace2/seleniumTest/4/info.csv','r'))

for line in user_file:

print(line[0])

结果:

姓名

Python

Java

Ruby

三、读取xml格式

有时候读取的数据格式是不规则的,比如在配置一个xml文件配置自动化脚本的URL、浏览器、登陆用户名和密码等,这时候就需要读取xml文件。首先导入xml的minidom模块,用来处理XML文件,使用parse()方法打开一个XML文件,documentElement用于得到XML文件的唯一根元素,getElementeByTagName()可以通过标签名称获取标签,若标签有多个,则可以通过指定数组的下标方式获取某个具体标签,使用getAttribute()方法获取元素的属性值,使用firstChild属性返回被选节点的一个子节点,使用data获取该节点的数据。

文件:

1240

xml文件

代码:

# -*- coding: utf-8 -*-

'''

@author: April_Chou

@time: 2018/4/17 7:45

'''

from xml.domimport minidom

# 打开xml文件

dom = minidom.parse('D:\\WorkSpace2\\seleniumTest\\4\\info.xml')

# 得到文档元素对象

root = dom.documentElement

logins = root.getElementsByTagName('login')

# 获取login标签的username属性值

username = logins[0].getAttribute('username')

print(username)

# 获取login标签的password属性值

password = logins[0].getAttribute('password')

print(password)

# 得到文档元素对象

provinces = root.getElementsByTagName('province')

# 获取第一个province标签对的值

p1 = provinces[0].firstChild.data

print(p1)

# 得到文档元素对象

cities = root.getElementsByTagName('city')

# 获取第一个city标签对的值

c1 = cities[0].firstChild.data

print(c1)

结果:

admin

123456

北京

深圳

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值