python读取xmlhtml文件

Posted yingyingdeyueer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python读取xmlhtml文件相关的知识,希望对你有一定的参考价值。

自动化测试设计测试用例时有的用例需要重复执行很多次,此时就需要对测试使用到的测试值进行参数化设计,而且参数化有利于测试用例的后期维护;并且自动化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()

 

 

以上是关于python读取xmlhtml文件的主要内容,如果未能解决你的问题,请参考以下文章

python读取,写入和更新xml文件

python 读取xml文件

尝试使用Python 3读取UTF-8 XML文件

python3 读取XML文件的入坑经历

使用 Python 直接从 zip 文件中读取 xml 文件

Python爬虫编程思想(76): 读取与搜索XML文件