Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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 13 xCuTest上通过滑动关闭视图_Ios_Swift_Xctest_Xcode Ui Testing - Fatal编程技术网

在iOS 13 xCuTest上通过滑动关闭视图

在iOS 13 xCuTest上通过滑动关闭视图,ios,swift,xctest,xcode-ui-testing,Ios,Swift,Xctest,Xcode Ui Testing,我一直在编写UITests,在记录了一个打开模态视图的测试之后,将模态向下滑动到屏幕底部以关闭它,我得到了如下代码(因为其中有一个表视图): 问题是,这并不总是有效的。有时(尤其是在iPad上),回放测试时,视图会向下移动一点,然后跳回原位(而不是忽略) 苹果肯定也遇到了同样的问题,并提出了一个更好的解决方案来消除iOS 13 xSuite上的模式视图(.present) 有没有一种方法可以可靠地排除这些由核心测试框架支持的笨蛋,这样我就不必做任何定制的手势之类的事情了 谢谢你的帮助 如果没有任

我一直在编写UITests,在记录了一个打开模态视图的测试之后,将模态向下滑动到屏幕底部以关闭它,我得到了如下代码(因为其中有一个表视图):

问题是,这并不总是有效的。有时(尤其是在iPad上),回放测试时,视图会向下移动一点,然后跳回原位(而不是忽略)

苹果肯定也遇到了同样的问题,并提出了一个更好的解决方案来消除iOS 13 xSuite上的模式视图(.present)

有没有一种方法可以可靠地排除这些由核心测试框架支持的笨蛋,这样我就不必做任何定制的手势之类的事情了

谢谢你的帮助

如果没有任何明显的解决办法,我想一个被黑客攻击的重型攻击手势也可以回答这个问题。。。所有答案都是针对非常微小或轻微的滑动,而不是全屏手势。但我希望您首先了解受支持解决方案的上下文(例如,您知道不存在受支持的解决方案吗?)


谢谢你的帮助苹果支持/维护通过XCTest框架删除视图的方式,或者关于此不存在的信息将回答此问题。

合成的
swipeDown()
手势不是很可靠,或者只是没有保持到足以在任何情况下生成模式删除

您可以创建自定义的向下滑动手势,如下所示:

var tablesQuery = app.tables.element(boundBy: 0)
let start = tablesQuery.coordinate(withNormalizedOffset:  CGVector(dx: 0.0, dy: 0.0))
let finish = tablesQuery.coordinate(withNormalizedOffset: CGVector(dx: 0.0, dy: 3.0))
start.press(forDuration: 0.5, thenDragTo: finish) 

您可以根据需要使用
dy
偏移值在屏幕上进行更长时间的滑动。

我刚刚开始玩UI测试,发现如果您添加
速度
滑动,操作表就可以工作

.swipeDown(velocity: XCUIGestureVelocity.fast)

这是新的吗?如果不是的话,我可能以前就错过了。我不确定,它说它是从Xcode 12.0+开始出现的,我只是最近才找到它。@Nicolasysuste尝试过使用一个初始化器来调整它吗?
.swipeDown(velocity: XCUIGestureVelocity.fast)