Appium не работает с цифровой клавиатурой - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь ввести цифры в поле редактирования, хотя поле сфокусировано. Appium не смог ввести символы.Я пробовал это несколькими способами, все не работало.

Пример 1:

driver.FindElementByXPath("field_to_fill").SendKeys("value");

Пример 2:

_driver.PressKeyCode(AndroidKeyCode.KeycodeButton_8);

Поле - поле EditText, полеПлатформа Android версии 7.0, и я использую C #.

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Это старше, но, возможно, это поможет кому-то в будущем. Я столкнулся с этой проблемой вчера после того, как тестируемое приложение сменило qwerty-клавиатуру на цифровую клавиатуру. (На Java) я изначально использовал driver.sendKeys(stringOfDigits), что не соответствовало отображению клавиатуры с цифровой клавиатурой. Ни driver.setValue(stringOfDigits), ни driver.pressKey(new KeyEvent(AndroidKey.NUMPAD_0)); также не работали.

Я обнаружил, что driver.pressKey(new KeyEvent(AndroidKey.DIGIT_0)); работает. Или, в моем случае, я вводил набор чисел из строки, поэтому я использовал цикл:

for(char c : stringOfDigits.toCharArray()) {
  driver.pressKey(new KeyEvent(AndroidKey.valueOf("DIGIT_" + c)));
}

Обычно я работаю с C #, но этот проект на Java. Надеюсь, Appium одинаков для обоих языков.

0 голосов
/ 16 мая 2018

У меня была одинаковая проблема на java, поэтому я использовал два метода обхода:

1.method - нажмите на textField () - получить объект страницы для UIAKeyboard, переопределить клавиатуру numpad (извлекать все кнопки в объект страницы) - используется метод сценария в объекте страницы для нажатия на элемент Number.по имени.

2.method - отправлять коды клавиш (попробуйте использовать собственный драйвер AndroidDriver вместо MobileDriver)

3.метод

driver.sendkeyEvent(int key);

Список кодов ключей:

a - z-> 29 - 54
"0" - "9"-> 7 - 16 
BACK BUTTON - 4, 
MENU BUTTON - 82 
UP-19, 
DOWN-20,
LEFT-21, 
IGHT-22 
SELECT (MIDDLE) BUTTON - 23 
SPACE - 62, 
SHIFT - 59,
ENTER - 66,
BACKSPACE - 67

или для более новой версии

driver.pressKeyCode(AndroidKeyCode.HOME);

4,метод (не тестировался) с координатами x, y для каждого числа (0-9 &.) и используемый метод driver.tap

...