有办法做一个" long"向左滑动手势以删除XCUITest中的元素

时间:2018-02-21 15:37:45

标签: swift4 xcode-ui-testing ios-ui-automation xcode9.2 xcuitest

我试图删除一个向左滑动的元素。此选项在我的应用程序中以两种方式存在。

  1. 向左轻扫并显示删除按钮,然后按下它。这里没问题。
  2. 长时间向左滑动,元素将被删除而不需要第二次询问。
  3. 第二个选项我无法使用XCUIElements函数重现它。

    我发现唯一的功能是element.swipeLeft(),但没有找到如何长时间向左滑动。

1 个答案:

答案 0 :(得分:1)

您可以使用press(forDuration:thenDragTo:)执行从单元格的一侧到另一侧的拖动。

let app = XCUIApplication()
let cell = app.cells.element(boundBy: 0) // first cell on the page

let rightOffset = CGVector(dx: 0.95, dy: 0.5)
let leftOffset = CGVector(dx: 0.05, dy: 0.5)

let cellFarRightCoordinate = cell.coordinate(withNormalizedOffset: rightOffset)
let cellFarLeftCoordinate = cell.coordinate(withNormalizedOffset: leftOffset)

// drag from right to left to delete
cellFarRightCoordinate.press(forDuration: 0.1, thenDragTo: cellFarLeftCoordinate)

请注意,在从元素创建坐标时,您会给出一个CGVector,它被标准化为元素的大小(其中1.0是元素的整个宽度/高度),但是如果你从坐标创建坐标,您必须为CGVector提供绝对值。