URL で IE9 を起動すると、2 つのプロセスが開始されていることがわかります。親プロセスと子プロセス。TestComplete の ObjectBrowser では、両方のプロセスに Page ノードと関連する子ノードがあります。
私の Silverlight AUT (テスト対象のアプリケーション) には、スクロールする必要があるデータグリッドがあります。グリッドをスクロールする前に、スクロールバーを確認します。
ただし、使用するプロセスによって異なる結果が得られます。
aqObject.IsSupported(
Sys.Process("iexplore", 1).Page("https://localhost/url/" ).Panel("silverlightContainer" ).Object(0 ).UIAObject("Popup" ).UIAObject("x" ).UIAObject("tab" ).UIAObject("TabItem", 2 ).UIAObject("StepList" )
, "VerticalScrollPercent")
aqObject.IsSupported(
Sys.Process("iexplore", 2).Page("https://localhost/url/" ).Panel("silverlightContainer" ).Object(0 ).UIAObject("Popup" ).UIAObject("x" ).UIAObject("tab" ).UIAObject("TabItem", 2 ).UIAObject("StepList" )
, "VerticalScrollPercent")
これらのうちの 1 つは true を返し、もう 1 つは false を返します。Sys.Refresh
世界やコントロールをどれだけリフレッシュしてもSys.Process...UIAObject("StepList").Refresh
、一方は常に失敗し、もう一方はパスします。
これは本当に奇妙ですが、予測可能であれば回避できますが、そうではありません。親プロセス ツリーが機能する場合もあれば、子プロセス ツリーが機能する場合もあります。
私の質問は..
- 何が起こっている?
- アプリを起動する時点で、自動化に使用するプロセスをどのように決定すればよいですか?
- この問題を経験することなく、リストをスクロールするという目標を達成するにはどうすればよいでしょうか (目的の行を見つけることができます)。