Откройте экран CallKit из активного вызова в тесте пользовательского интерфейса XCTest - PullRequest
1 голос
/ 13 марта 2020

У меня тест XCTest UI, когда два устройства устанавливают sh вызов с использованием CallKit. Экран CallKit отображается, когда входящий вызов достигает вызываемого абонента. Как только он принимает вызов, отображается основное тестовое приложение и фон CallKit становится фоновым. Это поведение по умолчанию.

Есть ли способ вернуться обратно на экран CallKit? Это не обязательно должен быть метод XCTest, это может быть обычный код SDK, который будет вызываться только тестовым комплектом.

Я попытался записать процесс открытия многозадачного представления и переключения на CallKit, и это результат:

let app = XCUIApplication()
app.children(matching: .window).element(boundBy: 0).children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.tap()
app.otherElements["com.apple.InCallService"].tap()

Но когда запускается записанный код, тест завершается ошибкой:

Assertion Failure: Failed to get matching snapshot: No matches found for Elements matching predicate '"com.apple.InCallService" IN identifiers' from input

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

Попробуйте активировать этот экран с помощью

XCUIApplication(bundleIdentifier: "com.apple.InCallService").activate()

или XCUIApplication(bundleIdentifier: "com.apple.springboard").activate()

0 голосов
/ 13 марта 2020

Я никогда не делал этого, но вы можете попытаться использовать XCUIApplication(bundleIdentifier: "com.apple.mobilephone").launch(), чтобы вернуться к вызову.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...