TestComplete v8 でテスト スクリプトを実行しています。メモリ内のオブジェクト グラフが古くなっています (ダイアログが表示されたため)。
次の VBScript コードを実行します
Sys.Process("iexplore").RefreshMappingInfo()
そして、次のエラーメッセージが表示されます...
Unable to find the object RefreshMappingInfo. See Additional Information for details.
The object with the specified attributes does not exist.
Possible causes of the error
このエラーは、TC がメソッド呼び出しをコントロールを検索する試みとして解釈することに関連しています。
本当に奇妙なこと.. COM 経由で TC8 に接続し、同じコードを実行すると、正常に動作します。だからルビーで:
require 'win32ole'
tc = WIN32OLE.connect("TestComplete.TestCompleteApplication.8")
integration = tc.integration
Sys = integration.GetObjectByName("Sys")
puts Sys.Process("iexplore").Page("http://localhost:50563/x.aspx") _
.Form("form1").Panel("silverlightControlHost").Object(0).UIAObject("Popup").Exists
' This returns false
Sys.Process("iexplore").RefreshMappingInfo()
' No error raised
puts Sys.Process("iexplore").Page("http://localhost:50563/x.aspx") _
.Form("form1").Panel("silverlightControlHost").Object(0).UIAObject("Popup").Exists
' returns true
テスト中にこれが機能しないのはなぜですか?どうすれば修正できますか?