Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用UIImagePickerController(或任何其他本机VC)正确测试应用程序_Ios_Xcode_Swift_Xcode Ui Testing_Fastlane Snapshot - Fatal编程技术网

Ios 如何使用UIImagePickerController(或任何其他本机VC)正确测试应用程序

Ios 如何使用UIImagePickerController(或任何其他本机VC)正确测试应用程序,ios,xcode,swift,xcode-ui-testing,fastlane-snapshot,Ios,Xcode,Swift,Xcode Ui Testing,Fastlane Snapshot,我正在尝试使用自动创建应用程序的屏幕截图,一切都进行得很顺利,直到我想浏览UIImagePickerController,它已将AllowEdit设置为true 奇怪的是,在iPhone4S、5s和6s模拟器中,这一切都很顺利,但在iPhone6(s)Plus中,测试似乎无法点击cropper视图中的“选择”(荷兰语中的Kies)按钮 我的第一次尝试在任何版本中都不起作用: app.buttons.elementBoundByIndex(2).tap() 并导致以下错误: 文件:///%3C

我正在尝试使用自动创建应用程序的屏幕截图,一切都进行得很顺利,直到我想浏览
UIImagePickerController
,它已将
AllowEdit
设置为
true

奇怪的是,在iPhone4S、5s和6s模拟器中,这一切都很顺利,但在iPhone6(s)Plus中,测试似乎无法点击cropper视图中的“选择”(荷兰语中的Kies)按钮

我的第一次尝试在任何版本中都不起作用:

app.buttons.elementBoundByIndex(2).tap()
并导致以下错误:

文件:///%3Cunknown%3E:测试失败:-[MyAppSnapshots testExample()]失败:UI测试失败-未能滚动到可见(通过AX操作)按钮0x7f82d450ae30:traits:8589934593,{{327.0,613.5},{35.0,34.0},标签:'Kies',错误:执行AXAction 2003时出现错误-25204

然后,我从中获得了
forceTapeElement
的解决方案,该解决方案在除iPhone6 Plus之外的所有手机上都能正常工作

然后我试着点击一个坐标

let window = app.windows.elementBoundByIndex(0)
let rightBottom = window.coordinateWithNormalizedOffset(CGVectorMake(
  CGRectGetWidth(window.frame) - 20,
  CGRectGetHeight(window.frame) - 20
))
rightBottom.tap()
但这在任何设备上都不起作用


那么如何测试这些本机接口呢?或者我应该在代码中添加某种开关,以便将
UIImagePickerController
替换为非交互式的控件。

您是否能够解决此问题?因为我现在也在面对它!我确实尝试了所有提到的解决方案,但在任何设备上都不起作用,除非我设置了.allowsdediting=false。不,从未找到解决方案。虽然我已经试了很长时间了。谢谢你的回复!如果你(或其他人)还需要它,我只需在点击选择按钮之前点击sleep(1)就可以修复它。不确定是否每个人都应该如此。
let window = app.windows.elementBoundByIndex(0)
let rightBottom = window.coordinateWithNormalizedOffset(CGVectorMake(
  CGRectGetWidth(window.frame) - 20,
  CGRectGetHeight(window.frame) - 20
))
rightBottom.tap()