运行XCT UI测试时,可以使用以下命令将应用程序置于后台进行测试:
XCUIDevice().pressButton(XCUIDeviceButton.Home)
是否可以通过某种方式使应用程序回到前台(活动状态)而无需重新启动应用程序?
Xcode 9更新 :从 Xcode 9 开始,您现在可以简单地调用activate()任何XCUIApplication。
activate()
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在这里有一个例子。