python读取xml、html文件

自动化测试设计测试用例时有的用例需要重复执行很多次,此时就需要对测试使用到的测试值进行参数化设计,而且参数化有利于测试用例的后期维护;并且自动化web测试也需要xpath进行页面元素的定位,所以我学习下python如何处理xml文件。

以下为使用到的html文件,把他放在了程序父文件夹的configure文件夹下

 
 
<html>
    <head>
        <title>通讯录</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    </head>
    <body>
        <center><h1>通讯录</h1></center>
        <table border="1" align="center" id="contactForm">
            <thead> 
                <tr><th>编号</th><th>姓名</th><th>性别</th><th>年龄</th><th>地址</th><th>电话</th></tr>
            </thead>
            <tbody>
                <tr>
                <td>001</td>
                <td>张三</td>
                <td></td>
                <td>18</td>
                <td lang="10">广州市天河区</td>
                <td>134000000000</td>
                </tr>
                <tr>
                <td lang="20">002</td>
                <td>李四</td>
                <td></td>
                <td>20</td>
                <td>广州市越秀区</td>
                <td>13888888888</td>
                </tr>
                <tr>
                <td>002</td>
                <td>郭靖</td>
                <td></td>
                <td>30</td>
                <td>广州市番禺区</td>
                <td>1111</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>
 
 

 

先下载需要的库lxml,我是直接在pycharm中下载的库,如果使用pip安装可能使用:
pip install lxml

 

命令会失败,需要加版本号之类的。
然后从文件中读取数据

from lxml import etree
f = open("../configure/a.html","r",encoding="utf-8") #读取文件
f = f.read()  #把文件内容转化为字符串
html = etree.HTML(f) #把字符串转化为可处理的格式
之后我主要写了两个函数,一个是把表格进行分项输出,一个是测试不同符号的使用.
test1:
def test1(html):
    result = html.xpath('//tbody/tr/td/text()') #把html文件中所有表格数据都存入result中,需注意result是一个列表
    num = len(result)
    i = 1
    while 6 * i <= num:  #示例html文件中每一行有6列,所以以6个单元为一组对列表进行分片读取,需注意,这种方法需要保证表格中没有空元素或者和开发约定好假如有空元素以空格为占位符
        first = (i - 1) * 6
        last = i * 6 - 1
        print(result[first:last + 1])
        i += 1

 

 

test2:
def test2(html):
    result = html.xpath('//tbody/tr/td[@lang]/text()')
    result2 = html.xpath('//tbody/tr/td[@lang=20]/text()')
    result3 = html.xpath('//tbody/tr/*/text()')
    print(result)
    print(result2)
    print(result3)

 

调用函数:
test1()
test2()

 

 

转载于:https://www.cnblogs.com/yingyingdeyueer/p/11269252.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值