Я писал тест с «Subliminal's» «SLTextField» и в последнее время столкнулся с некоторыми действительно раздражающими проблемами.Как можно сделать SLTextField доступным?
Я написал тест, который должен обновить текстовое поле, очистить его и снова обновить.
По какой-то причине, когда я использую «SLTextField» для изменения текста элемента, я последовательно получаю ошибки, заявляя, что «SLTextFields» не являются отображаемыми элементами. Это правда? Если да, то в чем смысл вообще иметь класс SLTextField?
Я могу переписать один и тот же тестовый код, чтобы найти элемент как «SLElement», после чего я могу нажать на элемент, открыть объект клавиатуры и ввести нужный текст, но похоже, что я обошел при выполнении этой функции Subliminal.
В чем проблема w/"SLTextField"?
Код:
SLTextField *textField = [SLTextField elementWithAccessibilityLabel:fieldName];
SLWaitUntilTrue([textField isTappable], DEFAULT_TIMEOUT);
textField.text = newValue;
Приведенный выше код выдает ошибку, заявив, что "TextField" никогда не станет tappable. В качестве альтернативы, код ниже работает отлично, хотя он излишне подробный и, кажется, делает «SLTextField» излишним.
Код:
SLElement *field = [SLElement elementWithAccessibilityLabel:fieldName];
[field tapAtActivationPoint];
//fill with text
SLKeyboard *kb = [SLKeyboard keyboard];
SLKeyboardKey *deleteKey = [SLKeyboardKey elementWithAccessibilityLabel:@"Delete"];
while(![field.value isEqualToString:@""]){
[deleteKey touchAndHoldWithDuration:1.2];
}
[kb typeString:newValue];
SLKeyboardKey *doneKey = [SLKeyboardKey elementWithAccessibilityLabel:@"Next"];
if(![doneKey isValid]){
doneKey = [SLKeyboardKey elementWithAccessibilityLabel:@"Done"];
}
[doneKey tap];
[kb hide];
Привет @Maixy, я сторонник Сублиминала. Когда вы пытаетесь использовать 'SLTextField', возникает ли ошибка, которую вы получаете конкретно, что поле не поддается отображению, или, возможно, что оно« не существует »? –
Привет, Джефф, к сожалению, ошибка, которую я получаю, заключается в том, что текстовое поле не поддается отображению. Если я получаю тот же элемент, что и SLElement, однако, во время того же отладки, он является tappable. – Maixy