自動化測試設計測試用例時有的用例需要重復執行很多次,此時就需要對測試使用到的測試值進行參數化設計,而且參數化有利於測試用例的后期維護;並且自動化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()