html网站怎么转换为编程,如何以编程方式将Selenese(html)转换为Python?

从xml.dom.minidom导入解析

SeleneseParser类:def __init __(self,selFile):self.dom =解析(selFile)

def getTestName(self):返回self.dom.getElementsByTagName('title')[0] .firstChild.data

def getBaseUrl(self):返回self.dom.getElementsByTagName('link')[0] .getAttribute('href')

def getNodes():cmds = []节点= self.dom.getElementsByTagName('tbody')[0] .childNodes

对于节点中的节点:如果node.nodeType == node.TEXT_NODE和node.data中的“ \ n”:继续如果node.nodeType == node.COMMENT_NODE:cmds.append(node.data)如果node.nodeType == node.ELEMENT_NODE:cmd = []对于node.childNodes中的c:如果c.nodeType == node.ELEMENT_NODE:如果len(c.childNodes)== 1:cmd.append(c.childNodes [0] .data)其他:cmd.append(“”)cmds.append(cmd)返回cmds

类PythonConverter:def __init __(self,sourceFile):self.parser = SeleneseParser(源文件)self.dest = u'#-*-编码:utf-8-*-\ n \ nfrom硒导入硒\ n导入单元测试,时间,重新\ n'

def getHeader(self):self.dest + = u'\ nclass%s(unittest.TestCase):\ n'%self.parser.getTestName()self.dest + = u'\ tdef setUp(self):\ n \ t \ tself.verificationErrors = [] \ n'self.dest + = u'\ t \ tself.selenium = selenium(“ localhost”,4444,“ * chrome”,“%s”)\ n'%self.parser.getBaseUrl()self.dest + = u'\ t \ tself.selenium.start()\ n'

def getContent(self):self.dest + = u'\ n \ tdef test_%s(self):\ n \ t \ tsel = self.selenium \ n'%self.parser.getTestName()

节点= self.parser.getNodes()对于节点中的节点:如果类型(节点)是列表:cmd,目标,值=节点[0],节点[1],节点[2]

如果cmd =='商店':self.dest + = u'\ t \ t%s =“%s” \ n'%(值,目标)elif cmd =='clickAndWait':self.dest + = u'\ t \ tsel.click(u“%s”)\ n \ t \ tsel.wait_for_page_to_load(“ 30000”)\ n'%(目标)elif cmd =='类型':self.dest + = u'\ t \ tsel。%s(u“%s”,u“%s”)\ n'%(cmd,目标,值)elif cmd =='选择':self.dest + = u'\ t \ tsel.select(u“%s”,u“%s”)\ n'%(目标,值)elif cmd =='verifyTextPresent':self.dest + = u'\ t \ ttry:self.failUnless(sel.is_text_present(u“%s”))\ n \ t \ t除了AssertionError,例如:self.verificationErrors.append(str(e))\ n '%目标elif cmd =='verifySelectedLabel':self.dest + = u'\ t \ ttry:self.assertEqual(u“%s”,sel.get_selected_label(u“%s”))\ n \ t \ t除了AssertionError,e:self.verificationErrors.append(str (e))\ n'%(值,目标)elif cmd =='verifyValue':self.dest + = u'\ t \ ttry:self.assertEqual(u“%s”,sel.get_value(u“%s”))\ n \ t \ t除了AssertionError,e:self.verificationErrors.append(str (e))\ n'%(值,目标)elif cmd =='verifyText':self.dest + = u'\ t \ ttry:self.assertEqual(u“%s”,sel.get_text(u“%s”))\ n \ t \ t除了AssertionError,e:self.verificationErrors.append(str (e))\ n'%(值,目标)elif cmd =='verifyElementPresent':self.dest + = u'\ t \ ttry:self.failUnless(sel.is_element_present(u“%s”))\ n \ t \ t除了AssertionError,e:self.verificationErrors.append(str(e))\ n '%(目标)其他:self.dest + = u'\ t \ tsel。%s(u“%s”)\ n'%(cmd,目标)

#print cmd,目标值其他:self.dest + = u'\ t \ t#%s \ n'%节点

def getFooter():self.dest + = u'\ n \ tdef tearDown(self):\ n \ t \ tself.selenium.stop()\ n \ t \ tself.assertEqual([],self.verificationErrors)\ n'self.dest + = u'\ nif __name__ ==“ __main __”:\ n \ tunittest.main()'

def convert(self):self.getHeader()self.getContent()self.getFooter()返回自我目的地

p = PythonConverter('test_case.html')打印p.convert()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值