Невозможно нажать (x, y) координату в ландшафтном режиме
В Xcode 8 / Swift 3 использование функции координат (withNormalizedOffset: CGVector) для взаимодействия с элементом XCUIEI работает только в портретном режиме.
Чтобы проверить эту функциональность, я создал одноэкранный проект с кнопкой в центре вида. Затем я запустил следующий тест пользовательского интерфейса:
func testExample() {
XCUIDevice.shared().orientation = .portrait
let window = XCUIApplication().windows.element(boundBy: 0)
let centerPoint = window.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5))
centerPoint.tap()
}
Это успешно нажимает на кнопку. Однако, если я запускаю один и тот же тест в landscapeLeft или landscapeRight, кнопка не нажимается. Печать точки экрана координаты показывает, что она находится внутри рамки кнопки в портретном и альбомном режимах.
Идентичная логика успешна для всех ориентаций в Xcode 7 / Swift 2:
func testExample() {
XCUIDevice.sharedDevice().orientation = .LandscapeLeft
let window = XCUIApplication().windows.elementBoundByIndex(0)
let centerPoint = window.coordinateWithNormalizedOffset(CGVectorMake(0.5, 0.5))
centerPoint.tap()
}
Я что-то упустил, или это законная ошибка фреймворка? Это как-то связано с переходом от CGVectorMake в Swift 2 к CGVector (dx: dy :) в Swift 3?