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を使用しています。