一尘不染

可以将应用程序从后台移到前台吗?

swift

运行XCT UI测试时,可以使用以下命令将应用程序置于后台进行测试:

XCUIDevice().pressButton(XCUIDeviceButton.Home)

是否可以通过某种方式使应用程序回到前台(活动状态)而无需重新启动应用程序?


阅读 522

收藏
2020-07-07

共1个答案

一尘不染

Xcode 9更新 :从 Xcode 9 开始,您现在可以简单地调用activate()任何XCUIApplication。

let myApp = XCUIApplication()
myApp.activate() // bring to foreground

https://developer.apple.com/documentation/xctest/xcuiapplication/2873317-activate


是的。但是,你需要XCUIElement的私有头(它通过头部转储可从Facebook
这里)。为了使应用程序前台化,您需要调用
resolve ,我相信它可以解决元素的查询(对于应用程序而言,这意味着前台应用程序)。

对于Swift,您必须将XCUIElement.h导入到桥接头文件中。对于Objective-C,您只需要导入XCUIElement.h。

将应用程序作为背景:

迅速:

XCUIApplication().resolve()

目标C

[[XCUIApplication new] resolve];

如果这是您唯一需要的功能,则只需编写一个快速的ObjC类别。

@interface XCUIElement (Tests)
- (void) resolve;
@end

如果您需要启动/解析另一个应用程序。通过跳板,Facebook在这里有一个例子。

2020-07-07