我已經有一個活動指標在我的根表視圖,而事情得到加載。我試圖測試指標的存在,但似乎無法獲取UIAActivityIndicator的位置,我也無法在應用程序元素樹層次結構中的任何位置找到它。該指標是根表視圖的子視圖,所以我期望它被看作是該元素樹的一部分,但我沒有在任何地方看到它(除了物理上在屏幕上)。iOS UIAutomation UIAActivityIndicator
從javascript獲取活動指標需要其他魔法嗎?
Ed
我已經有一個活動指標在我的根表視圖,而事情得到加載。我試圖測試指標的存在,但似乎無法獲取UIAActivityIndicator的位置,我也無法在應用程序元素樹層次結構中的任何位置找到它。該指標是根表視圖的子視圖,所以我期望它被看作是該元素樹的一部分,但我沒有在任何地方看到它(除了物理上在屏幕上)。iOS UIAutomation UIAActivityIndicator
從javascript獲取活動指標需要其他魔法嗎?
Ed
這是我爲等待iOS中的頁面加載而構建的函數。你可以在函數的代碼執行之前傳遞一個可選的predelay,除了它等待activityIndicator對象在30秒內變爲null(每半秒嘗試60次)。當我點擊對象時,我擴展了UIAutomation工具以包含此命令。
this.wait_for_page_load = function(preDelay) {
if (!preDelay) {
target.delay(0);
}
else {
target.delay(preDelay);
}
var done = false;
var counter = 0;
while ((!done) && (counter < 60)) {
var progressIndicator = UIATarget.localTarget().frontMostApp().windows()[0].activityIndicators()[0];
if (progressIndicator != "[object UIAElementNil]") {
target.delay(0.5);
counter++;
}
else {
done = true;
}
}
target.delay(0.5);
}
target.delay(1);
target.pushTimeout(10);
target.frontMostApp().mainWindow().activityIndicators()["In progress"].waitForInvalid() == true;
target.popTimeout();
這將等待1秒爲活動的指標出現。然後,它將等待10秒的超時值失效。用您的指標名稱代替「進行中」。
的代碼如下行解決我的問題
while(target.frontMostApp().mainWindow().activityIndicators()["In progress"].isEnabled());
其等待,直到活動的指標成爲禁用(但它需要1-2秒以上,成爲指標從我們的觀點刪除後禁用)
真棒, 謝謝。 – EdG
此代碼與我使用的代碼略有不同,但它會產生相同的錯誤結果。使用上面的確切代碼,即使活動指示器在屏幕上旋轉,progressInidicator始終爲零([object UIAElementNil])。再次,活動指示器處於活動狀態並且旋轉時顯示NO活動指示器的應用程序的logElementTree。創建UIActivityIndicator是否有任何魔法需要顯示?我曾嘗試過,沒有「無障礙標籤」。 – EdG