2013-02-08 26 views
0

使用URL啓動IE9我發現兩個進程已啓動;父母和孩子的過程。在TestComplete的ObjectBrowser中,兩個進程都有一個Page節點和相關的子節點。TestComplete 8和IE 9:處理兩個進程

在我的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") 

其中一個將返回true,另一個false。這似乎並不重要,我刷新世界Sys.Refresh或控制Sys.Process...UIAObject("StepList").Refresh,其中一個將總是失敗,而另一個通過。

這真的很奇怪,但如果它是可預測的,我可以解決它,但事實並非如此。有時候,父進程樹有時會起作用,有時候是孩子。

我的問題是..

  • 這是怎麼回事?
  • 如何在啓動應用程序 時決定使用哪個流程進行自動化?
  • 我還能如何實現滾動列表的目標(這樣我可以找到我想要的行)而不會遇到這個問題?
+0

哇這個問題已被查看過1000次...但沒有upvotes!不知道這是什麼說關於質量的問題:) –

回答

4

這是因爲Internet Explorer的LCIE功能(鬆散耦合Internet Explorer)。它使Internet Explorer對每個打開的網頁都有一個主進程和一個單獨的進程。您可以在Preparing Internet Explorer for Web Testing幫助主題中找到有關此功能的更多信息以及如何禁用它的詳細信息。

此外,您可以將工具實例升級到TestComplete 9.此版本允許訪問頁面對象,而不管瀏覽器的類型和其實例的索引。例如:

var page = Sys.Browser().Page("http://www.google.com"); 
+0

我使用IE9。我已經嘗試設置TabProcGrowth屬性,但它沒有任何作用...是不是隻爲IE8? –

+0

這應該也適用於IE9。如果在應用TabProcGrowth屬性後仍然看到單個Internet Explorer窗口,您確定存在兩個IEXPLORE過程(在對象瀏覽器或任務管理器中)嗎? –