51Testing软件测试论坛

标题: QTP如何识别browser ,和page属性变化的网页? [打印本页]

作者: lansemogu1985    时间: 2008-11-3 15:46
标题: QTP如何识别browser ,和page属性变化的网页?
我用QTP录制的代码:
browser("通知单执行").page("通知单执行")........
运行的时候,网页的标题改变了,变成了“送货单执行”
RUN  browser("通知单执行").page("通知单执行")........就发生了错误。因此我试过了两种方法,可是都不行。
第一种:
使用正则表达式匹配。
在对象库里面把browser("通知单执行")的title,name,opentitle和page("通知单执行")的title的constant都改成了“执行”,将regular expression前面打勾
如图1所示:
RUN  browser("通知单执行").page("通知单执行")........发生错误,提示找不到对象的父对象browser("...")
第二种:
使用setroproperty方法
browser("通知单执行").SetTOProperty "name","送货单"
browser("通知单执行").SetTOProperty "title","送货单"
browser("通知单执行").SetTOProperty "opentitle","送货单"

browser("通知单执行").page("通知单执行").SetTOProperty "title","送货单"

RUN  browser("通知单执行").page("通知单执行")........发生错误。

请问各位,我错在哪里,还有什么方法可以帮助我解决吗?在线等……

[ 本帖最后由 lansemogu1985 于 2008-11-3 15:47 编辑 ]
作者: lansemogu1985    时间: 2008-11-3 16:46
都没有人理我呀!
作者: bagwell333    时间: 2008-11-3 16:58
你想做什么操作呢?
如果是页面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") > 0  Then
                        '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




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2