在iOS 13 xCuTest上通过滑动关闭视图
我一直在编写UITests,在记录了一个打开模态视图的测试之后,将模态向下滑动到屏幕底部以关闭它,我得到了如下代码(因为其中有一个表视图): 问题是,这并不总是有效的。有时(尤其是在iPad上),回放测试时,视图会向下移动一点,然后跳回原位(而不是忽略) 苹果肯定也遇到了同样的问题,并提出了一个更好的解决方案来消除iOS 13 xSuite上的模式视图(.present) 有没有一种方法可以可靠地排除这些由核心测试框架支持的笨蛋,这样我就不必做任何定制的手势之类的事情了 谢谢你的帮助 如果没有任何明显的解决办法,我想一个被黑客攻击的重型攻击手势也可以回答这个问题。。。所有答案都是针对非常微小或轻微的滑动,而不是全屏手势。但我希望您首先了解受支持解决方案的上下文(例如,您知道不存在受支持的解决方案吗?)在iOS 13 xCuTest上通过滑动关闭视图,ios,swift,xctest,xcode-ui-testing,Ios,Swift,Xctest,Xcode Ui Testing,我一直在编写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)