Xcode XCUITest XCUIC координата не работает с нажатием и / или перетаскиванием - PullRequest
0 голосов
/ 05 июля 2018

Я запускаю Xcode 9.4.1 и пытаюсь делать длительное нажатие, а также нажатие и перетаскивание функций, используя координаты XCUIC. У меня оба метода работают нормально на элементах XCUIElement, но оба они не работают при запуске с 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)

При вызове метода press () для интересующего XCUIElement все работает правильно и оно выбрано. При вызове метода press () для координаты XCUIC той же точки интереса ничего не происходит. Не удается выбрать его.

Такое же несоответствие возникает с методами нажатия и перетаскивания.

Это известная ошибка в XCUITest XCode или я неправильно создаю координаты?

1 Ответ

0 голосов
/ 09 июля 2018

Оказывается, вам нужно сначала установить 0, 0 в качестве переменной («нормализовано»), а затем вызвать координаты относительно этой точки. Таким образом, рабочий код будет выглядеть так:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...