2015-03-30 24 views
1

我試圖使用TestComplete在iPad應用程序上執行自動化測試,但測試運行時遇到定位服務權限警報的問題。此警報在登錄到應用程序後出現,但出於某種原因,它不會顯示在對象瀏覽器中,我無法使用TestComplete來處理警報。不過,我可以在應用程序的其他地方處理自定義警報。未在對象瀏覽器中顯示iOS系統權限警報視圖

任何建議將不勝感激,因爲我希望這些測試每天晚上都在全新構建中運行,但現在我必須在運行測試之前手動觸發警報並將其解除。這顯然不是優選的。

編輯:所以我相信我知道爲什麼會發生這種情況,這是因爲AlertView屬於應用程序「跳板」而不是我的應用程序。有沒有解決方法?

回答

2

由於此權限警報是由系統而不是由應用程序顯示的,因此TestComplete無權訪問它,因此無法將其放到對象樹中。您可以做的唯一處理此權限警報的方法是使用device.Touch方法的屏幕座標來模擬觸摸操作。

+0

這就是我的想法。非常不幸! – Braains 2015-03-31 11:52:30

+0

你會碰巧有一個支持這個的代碼示例嗎?我似乎無法通過點擊按鈕所在的屏幕來使其工作。 – Braains 2015-04-20 13:02:34

0

您需要設置the UIAutomation onAlert callback來捕捉位置警報。

UIATarget.onAlert = function onAlert(alert) { 
    var title = alert.name(); 
    UIALogger.logDebug("Caught onAlert: " + title); 
    if (title.indexOf("Would Like to Use Your Current Location") > -1) { 
     alert.buttons()["OK"].tap(); 
     delay(0.3); 
     return true; 
    } 
    return false; 
}; 
+0

你在答案中是正確的,但我沒有使用TestComplete工具。這在Instrument中是一個相當簡單的修復,但由於某些原因,TestComplete無法訪問系統警報,因爲它們來源於Springboard,而不是來自當前進程。這是一個不幸的功能,缺乏肯定。 – Braains 2015-04-07 16:41:40

+0

捕獲系統警報是測試系統中缺少的一項相當重要的功能。這是否意味着他們無法測試任何使用位置,推送通知等的應用程序? – Ian 2015-04-07 17:18:25

+0

我不想代表TC團隊發言,但似乎SpringBoard發佈的任何警報都無法通過測試。另一個答案說,你可以使用屏幕座標來觸摸按鈕的位置,但我還沒有能夠成功地做到這一點,但 – Braains 2015-04-13 12:50:07

相關問題