lansemogu1985 发表于 2008-11-3 15:46:09

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 编辑 ]

lansemogu1985 发表于 2008-11-3 16:46:43

:'( 都没有人理我呀!

bagwell333 发表于 2008-11-3 16:58:26

你想做什么操作呢?
如果是页面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]
查看完整版本: QTP如何识别browser ,和page属性变化的网页?