Системное оповещение не отображается в дереве элементов в iOS12

(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')))
1
задан reutsey 6 February 2019 в 00:46
поделиться

1 ответ

Попробуйте 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 - это масштабируемое преобразование инвариантных объектов).


Возможно, это предупреждение не существует в иерархии приложений трамплина, но каким-то образом существует в другой иерархии приложений.


Совет: не беспокойтесь об автоматизации этого теста. Можно провести несколько ручных тестов.

0
ответ дан artyom.razinov 6 February 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: