2011-06-28 19 views
5

所有UI自動化examples我見過使用標準組件,其狀態可以通過使用value()方法的JavaScript API進行檢查。這有點限制。比方說,你想檢查顏色或alpha值和whatnot。如何檢查iOS gui自動化中的元素屬性?

如何檢查視圖的屬性?

一個例子:點擊某個元素應該使它「被選中」。我想對它進行點擊,然後驗證isSelected是TRUE。

更新:

我發現withPredicate()方法,它應該這樣做在理論上,但它似乎只在name屬性觸發:

element.withPredicate("isSelected == YES")   // always fails 
element.withPredicate("name matches 'my element'") // works 

回答

6

我結束了這種方法,其適用於我的目的:

讓UIView.accessibilityValue返回一個具有相關屬性的JSON字符串:

- (NSString *)accessibilityValue 
{ 
    return [NSString stringWithFormat: 
      @"{'alpha':%f, 'isSelected':%@}", 
      self.alpha, self.isSelected ? @"true" : @"false"]; 
} 

然後在測試代碼中使用eval()並檢查這些屬性。 value()是調用accessibility的簡寫值:

var props = eval("(" + element.value() + ")"); 

if (props.isSelected) { 
    UIALogger.logFail("Should not be selected"); 
} 

UIATarget.localTarget().tap({"x":471, "y":337}); 

var props = eval("(" + element.value() + ")"); 

if (!props.isSelected) { 
    UIALogger.logFail("Should be selected"); 
}