#coding=utf8
from xml.dom import minidom
from excute_excel import executeExel #自己写的模块
class Xml():
def getxml(self):
#打开xml文档
dom = minidom.parse(r'testsuite-deep.xml')
#用于得到dom对象的文档元素,并把获得的对象给root
root = dom.documentElement
#可以使用getElementsByTagName方法获取元素
itemlist = root.getElementsByTagName('testcase')
row =1
for i in itemlist:
#getAttribute方法可以获得元素的属性所对应的值
name= i.getAttribute('name')
actions = i.getElementsByTagName('actions')
expectedresults = i.getElementsByTagName('expectedresults')
preconditions = i.getElementsByTagName('preconditions')
plist = []
for pre in preconditions:
# childNodes返回子节点的一个列表,如果子节点有值,则进行如下操作
if len(pre.childNodes)>0:
# 获取第一个子节点的数据
p = str(pre.childNodes[0].data)
#将输出的一些字符清楚
pre = p.replace('', '').replace('tab', '').\
replace('
', '').replace('\n', '').replace('
', '')
plist.append(pre)
precontent = '\n'.join(plist)
print(precontent)
list = []
for action in actions:
#childNodes返回子节点的一个列表,如果子节点有值,则进行如下操作
if len(action.childNodes)>0:
#获取第一个子节点的数据
a = str(action.childNodes[0].data)
a = a.replace('','').replace('tab','').replace('
','').replace('\n','') \
.replace('
', '')
list.append(a)
else:
pass
step = '\n'.join(list)
elist = []
for expectedresult in expectedresults:
if len(expectedresult.childNodes)>0:
m = str(expectedresult.childNodes[0].data)
m = m.replace('', '').replace('tab', '').replace('
', '').replace('\n', '')\
.replace('
','')
elist.append(m)
else:
pass
expect = '\n'.join(elist)
try:
excel = executeExel('web.xls')
excel.write_exist_excel_result(row, 0,precontent)
excel.write_exist_excel_result(row,2,name)
excel.write_exist_excel_result(row, 3, step)
excel.write_exist_excel_result(row, 4, expect)
row += 1
except Exception as e:
print(e)
if __name__ == '__main__':
xm = Xml()
xm.getxml()