簡體   English   中英

使用Windows Phone上的編碼UI與MessageDialog進行交互

[英]Interact with MessageDialog using Coded UI on Windows Phone

我正在為一個簡單的應用程序編寫一些編碼的UI測試,似乎無法獲取代碼來查找或與MessageDialog框進行交互。 使用“測試”構建器,我可以看到該框及其關聯的控件,但是在測試中,除了應用程序中的元素之外,我什么都找不到。

我認為問題在於,用於搜索的XamlWindow僅限於受測試的應用程序,而彈出窗口存在於此上下文之外。 我試圖用彈出窗口所在的上下文實例化一個新的XamlWindow,但是代碼無法找到除硬件按鈕的應用程序之外的任何窗口。

我已經看到在其他一些地方引用了在使用UIMap時可以找到MessageDialog的信息,但是我正在手工編寫這些測試的代碼,並在可能的情況下嘗試避免使用它們。 我不反對使用UIMap,如果可以的話,可以使用代碼生成它並加載MessageDialog。

使用自動生成的代碼后,我能夠找出答案。 為了訪問MessageDialog,您需要實例化引用彈出窗口的UITestControl。 出現問題是因為此窗口不在被測試應用程序的范圍之內。 我可以使用以下方法實例化此窗口的UITestControl對象:

        UITestControl popupWindow = new UITestControl();
        popupWindow.TechnologyName = "UIA";
        popupWindow.SearchProperties[UITestControl.PropertyNames.ControlType] = "Window";
        popupWindow.SearchProperties["FrameworkId"] = "UIX";

UITestControl對象的此實例與普通實例之間的重要區別在於,沒有任何東西傳遞給新對象。 這允許代碼將代碼附加到測試應用程序范圍之外的對象。 從這里獲取彈出窗口中的任何元素都與正常頁面上的元素相同,但是您無需傳遞testApp XamlWindow對象,而是傳遞popupWindow對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM