我正在创建自动化测试,并在多个设备上对其进行测试。 在iOS 10上进行测试时遇到问题。
在我的测试中,我发送了一个推送通知。它已正确显示在设备上。
我通过以下方式等待该推送的存在:
XCUIElement *push = [XCUIElement pushNotificationWithTitle:message.title message:message.body];
if (![push waitForExistenceWithTimeout:30]) {
XCTFail(@"Push not visible");
}
我的问题是我的“ waitForExistenceWithTimeout”方法在iOS 10上始终返回false,并且在iOS 11上完美运行。
为什么?
修改: 这是我的pushNotificationWithTitle的实现:
+ (XCUIElement *)pushNotificationWithAppName:(NSString *)appName receptionDate:(NSString *)receptionDate title:(NSString *)title message:(NSString *)message {
XCUIApplication *springboard = [XCUIApplication springboardApp];
XCUIElementQuery *elementQuery = [springboard.otherElements matchingIdentifier:@"NotificationShortLookView"];
return elementQuery[[NSString stringWithFormat:@"%@, %@, %@, %@", appName, receptionDate, title, message]];}
和
+ (XCUIElement *)pushNotificationWithTitle:(NSString *)title message:(NSString *)message {
return [self pushNotificationWithAppName:APP_NAME receptionDate:[XCUILocalizationHelpers localizedStringForKey:@"NOTIFICATION_BANNER_DATE_RECEPTION_TITLE"] title:title message:message];}
编辑2:这是springboardApp:
+ (XCUIApplication *)springboardApp {
return [[XCUIApplication alloc] initWithBundleIdentifier:@"com.apple.springboard"];}