Сначала немного предыстории:
Я работаю над тестами автоматизации для приложения android с Selenium и Appium. Наше приложение включает в себя вход по номеру мобильного телефона, а также текстовое поле для номера мобильного телефона и OTP ограничивают ввод нечисловых c значений. Создавая тесты автоматизации для этого, я узнал, что обычные методы sendKeys и setValue не работают, поскольку они способны обойти ограничения поля ввода и ввести в поле пробелы, алфавит c и специальные символы. Из-за этого мне пришлось прибегнуть к использованию Selenium Actions для ввода моих данных, и это работало для пробелов и букв c символов.
Мой код теперь выглядит так:
MobileElement textField = driver.findElement(mobileNumberTextbox);
textField.clear();
textField.click();
Actions a = new Actions(driver);
a.sendKeys(mobileNumber).perform();
In В моем тесте я ввожу строку типа «test123», а затем извлекаю текстовое значение поля и проверяю, что это только «123». Как уже говорилось, этот подход работает для пробелов и букв c, но когда я пытаюсь ввести в поле что-то вроде «& * (»), значение становится «789». Это числа, которые соответствуют предоставленным специальным символам на обычной компьютерной клавиатуре. Но при использовании эмулятора или реального устройства нельзя вводить специальные символы на обеих клавиатурах.
Существует ли возможный обходной путь для этого?