(function(a){
document.body.appendChild(a);
a.setAttribute('href', location.href);
a.dispatchEvent((function(e){
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
return e
}(document.createEvent('MouseEvents'))))}(document.createElement('a')))
Попробуйте XCUIApplication(privateWithPath: nil, bundleID: "com.apple.springboard").coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5)).tap()
. Возможно, вам придется играть со значениями смещения.
Если это приводит к отмене оповещения, вы по крайней мере можете отменить это оповещение. Это может быть так, если предупреждение обрабатывается UIInterruptionMonitor.
В этом случае используйте addUIInterruptionMonitor: https://developer.apple.com/documentation/xctest/xctestcase/1496273-adduiinterruptionmonitor
Существует способ не запускать UIInterruptionMonitor и нажмите на координату, но для этого вы должны найти XCUIElement для предупреждения и нажмите на его координату, нажав на любой другой элемент вызывает UIInterruptionMonitor.
Если UIInterruptionMonitor не работает, вы можете нажать на координату. Жестко закодированные координаты могут быть в порядке, но вы не можете определить, отображается предупреждение или нет.
Чтобы получить точные координаты и проверить, отображается ли что-либо на экране, вы можете найти изображение на изображении: изображение вашей кнопки на снимке экрана: https://gist.github.com/artyom- razinov / f5b190e2a5f3282eb0b5c1191a1bc674
Алгоритм в коде требует 100% совпадения пикселей изображения и может потребовать создания снимков кнопки для каждого устройства (однако, если кто-то напишет алгоритм SIFT для UIImage и CGRect в Swift он может использовать 1 изображение для каждого устройства, потому что SIFT - это масштабируемое преобразование инвариантных объектов).
Возможно, это предупреждение не существует в иерархии приложений трамплина, но каким-то образом существует в другой иерархии приложений.
Совет: не беспокойтесь об автоматизации этого теста. Можно провести несколько ручных тестов.