Pis*_*ete 14 ios swift xcode7 xcode-ui-testing
运行XCT UI测试时,可以在后台运行正在测试的应用程序:
XCUIDevice().pressButton(XCUIDeviceButton.Home)
Run Code Online (Sandbox Code Playgroud)
它可以以某种方式将应用程序恢复到前台(活动状态)而无需重新启动应用程序?
Xcode 9更新:从Xcode 9开始,您现在可以简单地activate()在任何XCUIApplication上调用。
let myApp = XCUIApplication()
myApp.activate() // bring to foreground
Run Code Online (Sandbox Code Playgroud)
https://developer.apple.com/documentation/xctest/xcuiapplication/2873317-activate
是的。但是,你需要XCUIElement的私有头(它通过头部转储可从Facebook 这里)。为了使应用程序前台化,您需要调用resolve,我相信它可以解决元素的查询(对于应用程序而言,这意味着前台应用程序)。
对于Swift,您必须将XCUIElement.h导入到桥接头文件中。对于Objective-C,您只需导入XCUIElement.h。
将应用程序作为背景:
迅速:
XCUIApplication().resolve()
Run Code Online (Sandbox Code Playgroud)
目标C
[[XCUIApplication new] resolve];
Run Code Online (Sandbox Code Playgroud)
如果这是您唯一需要的功能,则只需编写一个快速的ObjC类别。
@interface XCUIElement (Tests)
- (void) resolve;
@end
Run Code Online (Sandbox Code Playgroud)
如果您需要启动/解析另一个应用程序。通过跳板,Facebook在这里有一个例子。
从 Xcode 8.3 和 iOS 10.3 开始,您可以使用 Siri 完成此操作:
XCUIDevice.shared().press(XCUIDeviceButton.home)
XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Open {appName}")
Run Code Online (Sandbox Code Playgroud)
包含@available(iOS 10.3, *)在您的测试套件文件的顶部,您应该很高兴!
| 归档时间: |
|
| 查看次数: |
6823 次 |
| 最近记录: |