Ios 从XCTest UI测试中的活动调用打开CallKit屏幕

Ios 从XCTest UI测试中的活动调用打开CallKit屏幕,ios,xcode,call,xcuitest,Ios,Xcode,Call,Xcuitest,我有一个XCEST UI测试,其中两个设备使用CallKit建立一个调用。 当传入呼叫到达被叫方时,将显示CallKit屏幕。一旦他接受了呼叫,就会出现主测试应用程序,CallKit屏幕将以背景显示。这是默认行为 有没有办法切换回CallKit屏幕?它不一定需要是一个XCTest方法,它可以是常规的SDK代码,只需要由测试包调用即可 我尝试记录打开多任务视图并切换到CallKit的过程,结果如下: let app = XCUIApplication() app.children(matching

我有一个XCEST UI测试,其中两个设备使用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

我从来没有这样做过,但你可以尝试使用
xguiapplication(bundleIdentifier:“com.apple.mobilephone”).launch()
切换回通话。

我从来没有这样做过,但你可以尝试使用
xguiapplication(bundleIdentifier:“com.apple.mobilephone”).launch()
切换回通话。

尝试通过

xguiapplication(bundleIdentifier:“com.apple.InCallService”).activate()


xguiapplication(bundleIdentifier:“com.apple.springboard”).activate()

尝试通过以下方式激活此屏幕:

xguiapplication(bundleIdentifier:“com.apple.InCallService”).activate()


xguiapplication(bundleIdentifier:“com.apple.springboard”).activate()

谢谢,我试过了,但不幸的是,它打开了当前活动选项卡(收藏夹、最近消息等)上的呼叫应用程序,而不是CallKit屏幕。谢谢,我试过了,但不幸的是,它打开了当前活动选项卡(收藏夹、最近消息等)上的呼叫应用程序而不是CallKit屏幕。激活Springboard,设置测试应用程序的背景并进入主屏幕。尝试激活InCallService失败,原因是:
激活应用程序“”(当前状态:运行背景)
激活Springboard,设置测试应用程序的背景并转到主屏幕。尝试激活InCallService失败,原因是:
激活应用程序“”(当前状态:正在运行的后台)