Как выполнить действие typeText() с React Native TextInput за пределами экрана (позиция: абсолютная, правая: -99)

У меня есть внешний экран TextInput со стилем {position: 'absolute', right: -99}, когда я вызываю действие typeText(), я получаю эту ошибку

«Ошибка: Ошибка: невозможно выполнить действие из-за сбоя ограничений. Исключение с действием: { «Имя действия»: «Нажмите», «Описание элемента»: «», «Неудачное ограничение (я)»: «interactable», "Все ограничения" : "(!(isSystemAlertViewShown) && ((respondsToSelector(isAccessibilityElement) && isAccessibilityElement) || kindOfClass('UIView')) && (включено && !(((kindOfClass('UIView') || responsesToSelector (accessibilityContainer)) && ancestorThatMatches(!(enabled))))) && Interactive)", "Recovery Suggestion" : "Настройте свойства элемента так, чтобы они соответствовали нарушенным ограничениям". }

[ { "Описание" : "Невозможно выполнить действие из-за сбоя ограничений.", "Домен ошибки" : "com.google.earlgrey.ElementInteractionErrorDomain", "Код ошибки" : "1", "Имя файла" : " GREYBaseAction.m", "Имя функции": "-[GREYBaseAction удовлетворяет ограничениям для элементов: ошибка:]", "Строка": "66" } ] "Как я могу выполнить действие typeText() с React Native TextInput за пределами экрана


person Thành Nguyễn Minh    schedule 06.02.2018    source источник
comment
Детокс: 5.8.1 - Узел: 8.4.0 - RN: 0.47.2 - ios: 10.3.1 - Xcode: 9.2   -  person Thành Nguyễn Minh    schedule 06.02.2018


Ответы (1)


Чтобы Detox взаимодействовал с элементом, элемент должен соответствовать критериям видимости. Я думаю, что стандартом является видимость 75%.

detox/docs/Introduction.WritingFirstTest.md

Обратите внимание, что средство сопоставления видимости гарантирует, что элемент действительно виден на экране (точнее, не менее 75%). Если он появляется под сгибом (например, пользователь должен прокрутить, чтобы увидеть его), этот конкретный сопоставитель не будет работать.


Подводя итог, я не понимаю, как можно набирать текст, когда поле ввода находится за пределами экрана.

person Antoni4    schedule 12.02.2018