• 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()
     
  • 相关阅读:
    go函数和方法
    Golang的“面向对象”
    高性能 socket 框架
    wpf 自定义圆形按钮
    WPF 实际国际化多语言界面
    使用过滤器对mvc api接口安全加密
    使用mvc3实现ajax跨域
    WPF,给颜色SolidColorBrush添加动画
    C# 通用验证类 支持 WPF,MVC,Winform
    WSL安装ubuntu搭建vue开发环境(三):docker安装
  • 原文地址:https://www.cnblogs.com/yingyingdeyueer/p/11269252.html
Copyright © 2020-2023  润新知