QTP如何识别browser ,和page属性变化的网页?
我用QTP录制的代码:browser("通知单执行").page("通知单执行")........
运行的时候,网页的标题改变了,变成了“送货单执行”
RUNbrowser("通知单执行").page("通知单执行")........就发生了错误。因此我试过了两种方法,可是都不行。
第一种:
使用正则表达式匹配。
在对象库里面把browser("通知单执行")的title,name,opentitle和page("通知单执行")的title的constant都改成了“执行”,将regular expression前面打勾
如图1所示:
RUNbrowser("通知单执行").page("通知单执行")........发生错误,提示找不到对象的父对象browser("...")
第二种:
使用setroproperty方法
browser("通知单执行").SetTOProperty "name","送货单"
browser("通知单执行").SetTOProperty "title","送货单"
browser("通知单执行").SetTOProperty "opentitle","送货单"
browser("通知单执行").page("通知单执行").SetTOProperty "title","送货单"
RUNbrowser("通知单执行").page("通知单执行")........发生错误。
请问各位,我错在哪里,还有什么方法可以帮助我解决吗?在线等……
[ 本帖最后由 lansemogu1985 于 2008-11-3 15:47 编辑 ] :'( 都没有人理我呀! 你想做什么操作呢?
如果是页面title变了,二种方法肯定不行,对象都找不到了,方法当然不能执行。
如果你在第一次页面上操作,然后系统跳转到第二页,那就再抓一次对象。
如果你想自动捕捉特殊browser,我有个方法不知可否有用。
取得window对象后再在其基础上操作。
Function FindWindow(sTitle)
Dim wndw
Set FindWindow = Nothing
With Createobject("shell.application")
For each wndw in .windows
If instr(lcase(typename(wndw.document)), "htmldocument") > 0Then
'reporter.ReportEvent micDone, "debug", wndw.document.title
If Len(sTitle) = 0 and Len(wndw.document.title) = 0 Then
Set FindWindow = wndw
Exit Function
End If
If Instr(lcase(wndw.document.title), lcase(sTitle)) > 0 and Len(sTitle) <> 0 then
Set FindWindow = wndw
Exit Function
End If
End If
Next
End with
End function
页:
[1]