我正在尝试使用Snapshot自动创建我的应用程序的屏幕截图,并且一切顺利,直到我想浏览UIImagePickerController
已设置allowsEditing
为true
.
奇怪的是,在iPhone 4s、5s和6s模拟器中这一切正常,但在iPhone 6(s) Plus中,测试似乎无法点击“选择”(荷兰语中的“Kies”)按钮裁剪视图。
我的第一次尝试在任何版本中都不起作用:
app.buttons.elementBoundByIndex(2).tap()
并导致以下错误:
file:///%3Cunknown%3E:测试失败:-[MyAppSnapshots testExample()] 失败:UI 测试失败-无法滚动到可见(通过 AX 操作)按钮 0x7f82d450ae30:特征:8589934593,{{327.0, 613.5}, {35.0, 34.0}},标签:'Kies',错误:错误 -25204 执行 AXAction 2003
然后从这个答案中我抓住了 的解决方案forceTapElement
,它确实适用于除iPhone 6(s) Plus之外的所有设备。
app.buttons.elementBoundByIndex(2).forceTapElement()
然后我尝试点击一个坐标;
let window = app.windows.elementBoundByIndex(0)
let rightBottom = window.coordinateWithNormalizedOffset(CGVectorMake(
CGRectGetWidth(window.frame) - 20,
CGRectGetHeight(window.frame) - 20
))
rightBottom.tap()
但这在任何设备上都不起作用。
那么如何测试这些原生接口呢?或者我应该只是在我的代码中添加某种开关,以便将其UIImagePickerController
替换为非交互式的东西。