QTP 11で奇妙な問題が発生しました。これまでのところ、次のコードは機能していましたが、突然機能を停止し、オブジェクトがこのプロパティまたはメソッドをサポートしていません。
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回実行するだけで、「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というメッセージでランダムに失敗します。
objPageとobjBrowserを設定するstartBrowser関数があります。
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
そのため、現時点では、テストでブラウザを開いてリンクをクリックするだけで、デバッグを試みますが、それでも失敗するか、ランダムに合格します。実行エラーは、「SetobjLink」の行を示しています。さらにデバッグするためのアイデアはありますか?重要な場合は、QTP11とIE8を使用しています。