2015-07-29 2 views
4

Чуть ниже XCUIElementQuery класса внутри XCTest есть много констант, где документация банкнота над ней гласит:Как использовать константы XCUIKeyboardKey?

Constants for use with -[XCUIElement typeKey:modifierFlags:], 
    representing keys that have no textual representation. These comprise 
    the set of control, function, and modifier keys found on most keyboards. 

По-видимому, это, кажется, должно быть XCUIElement метод, называемый typeKey:modifierFlags:, как примечание состояния. Однако я не могу найти этот метод в документации. Я также не вижу никакого метода, который заменяет это поведение, используя вышеупомянутые константы. Вот неполный список констант я был бы заинтересован в использовании:

let XCUIKeyboardKeyDelete: String 
let XCUIKeyboardKeyReturn: String 
let XCUIKeyboardKeyTab: String 
let XCUIKeyboardKeyCommand: String 

Является ли этот код просто преждевременным и, вероятно, будет завершена позже, как часть будущих Xcode 7 выпусков?

В конечном счете, я хотел бы иметь возможность вводить cmd+a, а затем использовать XCUIKeyboardKeyDelete для удаления содержимого данного XCUIElement. Если в Xcode 7 UI Testing есть хорошие альтернативы, я бы хотел узнать их.

-> Swift 2,0 бета 4

+1

Я думаю, что '[XCUIElement typeKey: modifierFlags:]' был удален случайно или что-то в бета-версии 4. Рекордер использует его, но он не компилируется. –

+0

Хорошая мысль. Однако у меня также установлена ​​бета-версия 3, и я тоже не могу найти ее там. Любые другие идеи? – kbpontius

+0

Нет ... Я представил радар. –

ответ

4

Вы можете использовать XCUIElement.typeText (текст: String) с XCUIKeyboardKeyDelete.

Пример, когда текстовое поле не является пустым:

textField.tapWithNumberOfTaps(2, numberOfTouches: 1) 
app.menuItems["Select All"].tap() 
textField.typeText(XCUIKeyboardKeyDelete) 
+0

Это отличная идея и почти сработало для меня. tapWithNumberOfTaps выбрал только 1 символ, а XCUIKeyboardKeyDelete добавил специальный символ, который не оставил поле пустым. Хороший материал, хотя – JJacquet

0

В нем говорится в документации, что метод [XCUIElement typeKey:modifierFlags:] доступен только на MacOS. См. https://developer.apple.com/reference/xctest/xcuielement

Я протестировал это на Xcode 8.2.1 в фиктивной целевой программе UI-тестирования MACOS, и действительно этот метод существует. Это не существует на iOS.

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