У меня проблема, если я пытаюсь разрешить системное оповещение системы, работать только один раз, а следующее предупреждение не «разрешать» . Я больше не ищу больше времени и знаю об этом сообщении: (Xcode 7 UI Testing: how to dismiss a series of system alerts in code) Ничего .. не работает. Вот мой текущий код, первое предупреждение «разрешено» успешно, следующий сигнал тревоги не обнаружено ..Xcode UI Testing разрешает системные предупреждения серии
XCUIApplication *app = [[XCUIApplication alloc] init];
app.launchEnvironment = @{
@"isUITest" : @YES,
@"withFakeData" : fakeData
};
[app launch];
for (int i = 1; i <= self.possibleSystemAlerts; i++) {
NSLog(@"%d", i);
XCTestExpectation *expectation = [self expectationWithDescription:@"High Expectations"];
id monitor = [self addUIInterruptionMonitorWithDescription:@"Push notifications" handler:^BOOL(XCUIElement *_Nonnull interruptingElement) {
XCUIElement *element = interruptingElement;
XCUIElement *allow = element.buttons[@"Allow"];
XCUIElement *ok = element.buttons[@"OK"];
if ([ok exists]) {
[ok tap];
[expectation fulfill];
return YES;
}
if ([allow exists]) {
[allow forceTap];
[expectation fulfill];
return YES;
}
return NO;
}];
[app tap];
[self waitForExpectationsWithTimeout:6.0 handler:^(NSError *error) {
if (error) {
NSLog(@"Timeout Error: %@", error);
}
}];
[self removeUIInterruptionMonitor:monitor];
}
С наилучшими пожеланиями, Иван.
UPD:
Хорошо, я нашел решение, как после первого сигнала, попробуйте второе место (спасибо за этот сайт: http://www.it1me.com/it-answers?id=32148965&s=Template:Viper&ttl=Xcode+7+UI+Testing%3A+how+to+dismiss+a+series+of+system+alerts+in+code) Просто нужно возвращать всегда НЕТ.
Но другая проблема ...
t = 10.18s Find: Descendants matching type Alert
t = 10.18s Find: Identity Binding
t = 11.19s Find the "Allow “MyApp” to access your location while you use the app?" Alert (retry 1)
t = 11.19s Snapshot accessibility hierarchy for com.apple.springboard
t = 11.26s Find: Descendants matching type Alert
t = 11.26s Find: Identity Binding
t = 12.27s Find the "Allow “MyApp” to access your location while you use the app?" Alert (retry 2)
t = 12.27s Snapshot accessibility hierarchy for com.apple.springboard
t = 12.33s Find: Descendants matching type Alert
t = 12.34s Find: Identity Binding
t = 12.42s Assertion Failure: UI Testing Failure - No matches found for "Allow “MyApp” to access your location while you use the app?" Alert
Query input was {(
Alert 0x7febe8731630: traits: 72057602627862528, {{25.0, 193.0}, {270.0, 182.0}}, label: '“MyApp” Would Like to Send You Notifications'
)}
Он попробовать близко третье уведомление, а не второй, конечно, он не нашел эту систему предупреждение ...
Не сайт, на который вы связались в обновлении, просто скрежет того же Q/A, с которым вы связались в своем оригинальном посте? –