2016-05-06 1 views
2

Я пытаюсь использовать местоположение x, y, используя Xcode и UI Testing. Вот мой код:Xcodes UI Testing - Нажатие на место x y

XCUIApplication().coordinateWithNormalizedOffset(CGVector(dx: 50, dy: 50)).tap() 

Середина кнопки, безусловно, в этом месте и не может быть идентифицирована в качестве отдельного объекта (следовательно, с помощью й, у координаты).

Однако это не нажатие кнопки. Кто-нибудь знает, есть ли правильный способ использовать координату x y?

ответ

4

dx и dy не являются смещениями пикселей, а нормализованными векторами. Например, 0,5 на самом деле является серединой элемента. Ваш код пытается использовать элемент за пределами границ экрана (на ~ 50x!).

Предлагаю попытаться решить проблему с помощью другого подхода. Во-первых, почему кнопка не может быть идентифицирована? Что вы пробовали? Используете ли вы подклассу UIButton?

Я спрашиваю, потому что вы можете (обычно) выставлять любой элемент управления или пользовательского интерфейса для тестирования пользовательского интерфейса с соответствующими атрибутами доступности. Например, вы можете установить accessibilityLabel и accessibilityIdentifier на текст кнопки. Затем вы можете использовать это значение для доступа к тестируемой кнопке.

// Production Code 
let button = UIButton() 
button.setTitle("Save", forState: .Normal) 
button.accessibilityIdentifier = "Save" 

// UI Test Code 
``` 
let app = XCUIApplication() 
app.buttons["Save"].tap() 
+0

Joe - спасибо за головы до 50x! упс. Мы пробовали ярлыки доступности, идентификаторы и подсказки, но эта страница оказалась отвратительной по неизвестной причине. Почему-то Devs все еще отлаживает, но я сказал, что попробую x, y подходить тем временем. Попробуем некоторые значения 0.x - спасибо! –

Смежные вопросы