我对 QTP 11 有一个奇怪的问题。以下代码到目前为止工作,但突然停止工作并抛出 Object does not support this property or method.: 'objPage.Link' for the line with 'if link exists'
Set objBrowser = Browser("creationtime:=" & Desktop.ChildObjects(oDesc).Count - 1 & "")
Set objPage = objBrowser.Page("title:=.*")
If objPage.Link("class:=menu_link_tab_.*", "html id:=.*DesktopTab").Exist(3) Then
msgbox "ok"
End If
谁能告诉我什么是错的和/或如何做对?
编辑:我解决了这个问题,但仍然不知道发生了什么。我只是从 QTP 脚本中剪切这部分并将其粘贴到记事本中,然后将其从记事本复制到 QTP。一切正常。我没有改变任何东西......欢迎任何关于到底发生了什么的想法。
另一个编辑:问题随机再次出现。在没有任何更改的情况下,我可以运行测试 10 次,让它随机失败,并显示“对象不支持此属性或方法”消息
我有一个 startBrowser 函数,我在其中设置了 objPage 和 objBrowser :
Function startBrowser(vURL)
Dim oDesc
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate vURL
Window("hwnd:=" & IE.HWND).Maximize
Set oDesc = Description.Create
oDesc( "micclass" ).Value = "Browser"
If Desktop.ChildObjects(oDesc).Count > 0 Then
Set objBrowser = Browser("creationtime:=" & Desktop.ChildObjects(oDesc).Count - 1 & "")
End If
Set objPage = objBrowser.Page("title:=.*")
End Function
我添加了很多带有 GetROProperty 的 msgbox 来验证对象是否正常。他们似乎是。
现在我单击链接的功能如下所示:
Function clickMainMenuLink(vIdentifier)
Set objLink = objPage.Link("class:=menu_link_tab_.*", "html id:=.*" & vIdentifier, "index:=0")
If objLink.Exist(timeOut) Then
objLink.Click
Else
reporter.ReportEvent micFail, "Click the " & vIdentifier & " menu link", "Cannot find the " & vIdentifier & " menu link"
ExitTestIteration
End If
End Function
所以目前我的测试只是打开浏览器并在我尝试调试事物时单击一个链接,但它仍然失败或随机通过。运行错误指示带有“设置 objLink”的行。进一步调试的任何想法?如果重要的话,我在 QTP11 和 IE8 上。