Клавиатура ошибки тестирования пользовательского интерфейса Xcode

XCUIApplication *app = [[XCUIApplication alloc] init];
[app.buttons[@"Committee"] tap];
[app.buttons[@"Login"] tap];
[app.buttons[@"Add Presenter"] tap];

XCUIElement *nameTextField = app/*@START_MENU_TOKEN@*/.textFields[@"Name"]/*[[".scrollViews.textFields[@\"Name\"]",".textFields[@\"Name\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/;
[nameTextField tap];
[nameTextField typeText:@"A"];

XCUIElement *topicTextField = app/*@START_MENU_TOKEN@*/.textFields[@"Topic"]/*[[".scrollViews.textFields[@\"Topic\"]",".textFields[@\"Topic\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/;
[topicTextField tap];
[topicTextField tap];

моя ошибка заключается в том, что при запуске теста пользовательского интерфейса я получаю сообщение об ошибке тестирования пользовательского интерфейса

Ни элемент, ни потомок не имеют фокуса клавиатуры.

Атрибуты: TextField, однако тест выше прошел. Я приложил скриншот того, что именно не удалось введите здесь описание изображения


person Walee    schedule 06.12.2015    source источник
comment
Это может помочь: сбой тестирования пользовательского интерфейса: ни элемент, ни какой-либо потомок не имеют фокуса клавиатуры на se"> stackoverflow.com/questions/32184837/   -  person ovejka    schedule 23.12.2015


Ответы (2)


Я столкнулся с этой же проблемой с Xcode 7.0.1 и смог решить ее, отключив подключенную аппаратную клавиатуру в настройках симулятора. Аппаратное обеспечение -> Клавиатура -> Подключить аппаратную клавиатуру (снимите этот флажок). ссылка

person Yogesh Khatri    schedule 04.02.2016
comment
есть ли способ отключить его автоматически? Он будет включен при каждом запуске - person netshark1000; 26.05.2016

У меня работает для родных экранов:

extension XCUIElement {
    func typeTextAlt(_ text: String) {
        // Solution for `Neither element nor any descendant has keyboard focus.`
        if !(self.value(forKey: "hasKeyboardFocus") as? Bool ?? false) {
            XCUIDevice.shared.press(XCUIDevice.Button.home)
            XCUIApplication().activate()
        }
        self.typeText(text)
    }
}
person Sameer Technomark    schedule 10.12.2020