UIATarget captureScreenWithName()的XCUIApplication替换

时间:2016-09-02 21:29:39

标签: ios ios-ui-automation xcode-ui-testing

我们正在尝试从UIAutomation迁移到XCUITests并使用captureScreenWithName()API以编程方式生成屏幕截图。 什么是XCUITests的替代品? (我知道在发生错误时会自动截取屏幕截图,但是我们有一个特殊的测试,它会在循环中永久运行并评估QA点击,通过网络点击命令,类似于appium-xcuitest-driver https://github.com/appium/appium-xcuitest-driver) 我是否需要像appium那样删除私有标题(XCAXClient_iOS.h)以获取屏幕截图API?

修改 我使用了实际的代码行来接受解决方案 https://github.com/fastlane/fastlane/blob/master/snapshot/lib/assets/SnapshotHelper.swift以及IOS的这个

 XCUIDevice.sharedDevice().orientation = .Unknown

或在objC

[XCUIDevice sharedDevice].orientation =UIInterfaceOrientationUnknown;

我在主机上使用一个进程在调用之前在“Logs / Test / Attachments”目录中查找所有的Screenshot _ *。png文件,并在调用之后找到新的镜头,作为在此目录中添加的新文件。

1 个答案:

答案 0 :(得分:1)

手势(点按,滑动,滚动...)会导致截图,并且在定位元素或评估期望时也会经常截取屏幕截图。

Fastlane的快照工具使用旋转到未知方向来触发屏幕截图事件(对应用程序没有影响):https://github.com/fastlane/fastlane/tree/master/snapshot - 如果你想要控制它,你可以使用它一些截图。