Testing 如何在Xcode UI测试脚本中执行点击和拖动?

Testing 如何在Xcode UI测试脚本中执行点击和拖动?,testing,xcode7,xcode-ui-testing,Testing,Xcode7,Xcode Ui Testing,比如说,, 我有一个素描板应用程序,我想通过在上面画图来测试它。我想指定一个(x,y)坐标,并使其点击并拖动到另一个(x,y)坐标 这在Xcode UI测试中可能吗 Joe为这个问题提供了一个解决方案: 使用objective C,我的代码如下所示: XCUICoordinate *start = [element2 coordinateWithNormalizedOffset:CGVectorMake(0, 0)]; XCUICoordinate *finish = [element2 coo

比如说,, 我有一个素描板应用程序,我想通过在上面画图来测试它。我想指定一个(x,y)坐标,并使其点击并拖动到另一个(x,y)坐标

这在Xcode UI测试中可能吗

Joe为这个问题提供了一个解决方案: 使用objective C,我的代码如下所示:

XCUICoordinate *start = [element2 coordinateWithNormalizedOffset:CGVectorMake(0, 0)];
XCUICoordinate *finish = [element2 coordinateWithNormalizedOffset:CGVectorMake(0.5, 0.5)];
[start pressForDuration:0 thenDragToCoordinate:finish];

其中
element2
是我必须执行拖动的XCUI元素

您可以使用
xguicoordinate
在UI测试中点击并拖动元素。下面是via表格单元格坐标的示例

let firstCell = app.staticTexts["Adrienne"]
let start = firstCell.coordinateWithNormalizedOffset(CGVectorMake(0, 0))
let finish = firstCell.coordinateWithNormalizedOffset(CGVectorMake(0, 6))
start.pressForDuration(0, thenDragToCoordinate: finish)
如果您没有要引用的元素,您应该能够基于
xguiapplication
创建任意坐标

let app = XCUIApplication()
let fromCoordinate = app.coordinateWithNormalizedOffset(CGVector(dx: 0, dy: 10))
let toCoordinate = app.coordinateWithNormalizedOffset(CGVector(dx: 0, dy: 20))
fromCoordinate.pressForDuration(0, thenDragToCoordinate: toCoordinate)
UI测试没有官方文档,但我已经整理了标题,如果您有兴趣了解更多详细信息,我会整理一个标题。

或者从Swift 4开始:

let view=window.staticText[“FooBar”]
让start=view.coordinate(使用规格化偏移:CGVector(dx:10,dy:20))
让finish=view.coordinate(带有规格化偏移:CGVector(dx:100,dy:80))
开始。按(持续时间:0.01,然后拖动到:完成)

谢谢乔!工作得很有魅力!我遇到的唯一问题是试图找到要对其执行操作的元素。