0

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、一方は常に失敗し、もう一方はパスします。

これは本当に奇妙ですが、予測可能であれば回避できますが、そうではありません。親プロセス ツリーが機能する場合もあれば、子プロセス ツリーが機能する場合もあります。

私の質問は..

  • 何が起こっている?
  • アプリを起動する時点で、自動化に使用するプロセスをどのように決定すればよいですか?
  • この問題を経験することなく、リストをスクロールするという目標を達成するにはどうすればよいでしょうか (目的の行を見つけることができます)。
4

1 に答える 1

4

これは、Internet Explorer のLCIE機能 (疎結合 Internet Explorer) が原因で発生します。これにより、Internet Explorer はメイン プロセスと、開かれた Web ページごとに個別のプロセスを持つようになります。この機能の詳細と、それを無効にする方法の詳細については、Web テスト用の Internet Explorer の準備に関するヘルプ トピックを参照してください。

また、ツールのインスタンスを TestComplete 9 にアップグレードすることもできます。このバージョンでは、ブラウザのタイプやインスタンスのインデックスに関係なく、ページ オブジェクトにアクセスできます。例えば:

var page = Sys.Browser().Page("http://www.google.com");
于 2013-02-08T05:04:47.177 に答える