UIATarget captureScreenWithName()的XCUIApplication替换

我们正在尝试从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文件,并在调用之后找到新的镜头,作为在此目录中添加的新文件。

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

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