Xcode XCUITest XCUICoordinate 不适用于按下 and/or 拖动

Xcode XCUITest XCUICoordinate not working with press and/or drag

我正在 运行ning Xcode 9.4.1 并尝试使用 XCUICoordinates 执行长按和拖动功能。我有两种方法在 XCUIElements 上工作正常,但当 运行 反对 XCUICoordinates 时都失败了。

例如拿下面的代码

    let app = XCUIApplication()
    let pointOfInterest = app.buttons["PointOfInterest1"]
    let coordinates: XCUICoordinate = app.coordinate(withNormalizedOffset: CGVector(dx: pointOfInterest.frame.origin.x, dy: pointOfInterest.frame.origin.y))
    // This does nothing:
    coordinates.press(forDuration: 3)
    // This selects the points of interest:
    pointOfInterest.press(forDuration: 3)

针对兴趣点 XCUIElement 调用 press() 方法时,一切正常,并且已 selected。针对同一兴趣点的 XCUICoordinate 调用 press() 方法时,没有任何反应。它无法 select 它。

同样的不一致发生在按下和拖动方法上。

这是 Xcode 的 XCUITest 中的已知错误还是我创建的坐标不正确?

原来需要先将0, 0点设置为变量('normalized'),然后调用相对于该点的坐标。所以工作代码看起来像这样:

let app = XCUIApplication()
let pointOfInterest = app.buttons["PointOfInterest1"]
let normalized = app.coordinate(withNormalizedOffset: CGVector(dx: 0, dy: 0))
let coordinates: XCUICoordinate = normalized.coordinate(withNormalizedOffset: CGVector(dx: pointOfInterest.frame.origin.x, dy: pointOfInterest.frame.origin.y))
// This now works:
coordinates.press(forDuration: 3)
// This selects the points of interest:
pointOfInterest.press(forDuration: 3)