2011-04-26 23 views
0

我需要爲Silverlight應用程序創建自動化測試,我使用System.Windows.Automation命名空間。我的問題是這樣的:Silverlight UI自動化問題 - 無法找到元素

我用AutomationElement.FindFirst定位在UI樹的UI元素:

AutomationElement toBeInvoked = browser.FindFirst(TreeScope.Descendants, 
        new PropertyCondition(AutomationElement.AutomationIdProperty, id)); 

這適用於幾步之後卻不會發現任何東西。我檢查過屏幕更改後,UI樹將變空,UISpy只能看到Silverlight控件,但僅此而已:screenshot 。 (我也嘗試過使用TreeWalker,但結果是一樣的。)如果我手動點擊,並用UISpy檢查元素,一切正常。但是當我運行我的代碼時,它停止(通常在同一個按鈕上)。

後來我意識到,如果我手動點擊我的代碼將訪問的屏幕,並且在我運行它之後,不會有任何問題......奇怪。我在FF 3.6,4.0和IE8中試過。每個瀏覽器的問題都是一樣的。

有沒有人知道什麼可能是錯的,或者哪裏可能是錯誤?我在代碼中遺漏了什麼,或者問題出在瀏覽器的設置中?

在此先感謝,問候,

米克洛什

回答

0

「如果我手動點擊,並檢查與UISpy的元素,一切正常。但是當我運行我的代碼,它停止」

您可以通過以下方式模擬手動單擊此故障按鈕: 1.通過UI自動化獲取您想要單擊的按鈕的座標; 2.驅動你的鼠標點擊它的座標(由win32 mouse_event api);

請參閱下列步驟是否可以運行。