2015-11-07 95 views
1

也許我誤解了查詢和xcuielements如何工作,但我想循環查詢的結果。如何遍歷多個XCUIElements

在我的應用程序中,我在我的應用程序的屏幕上收到了兩次發送的文本編號/編號。我想檢查兩個數字是否相同。例如,以下文本在我的屏幕上。

10/10 
0/0 

我用下面的代碼找到這兩個靜態文本元素

XCUIElement *staticTexts = [self.app.staticTexts elementMatchingPredicate:[NSPredicate predicateWithFormat:@"label contains '/'"]]; 

這取我的兩個靜態文本元素,但我也沒有辦法通過兩個迭代檢查標籤。如果只有一個元素被檢索,那麼不幸的是會有兩個元素。如果有更好的方法來做到這一點,請告訴我。我是新來的UI測試。

回答

1

您正在調用的方法,-elementMatchingPredicate:僅返回元素。請注意,方法名稱是單數。嘗試調用返回對象上的任何方法將導致引發異常。

我建議採取一種稍微不同的方法來測試。既然你正在寫測試決定第一個數字應該是什麼。然後您可以使用它來驗證第二個數字是否相同。

要做到這一點,只需在每個標籤上設置不同的-accessibilityIdentifier即可。然後你可以單獨聲明每一個。

XCUIApplication *app = [[XCUIApplication alloc] init]; 
XCTAssertEqual(app.staticTexts[@"Number Input"].value, @"867-5309"); 
XCTAssertEqual(app.staticTexts[@"Number Confirm"].value, @"867-5309");