Логика android приложения такая: при нажатии на кнопку в текстовом поле появляется текст. Мне нужно ввести в это поле мое значение и нажать отправить - в результате отобразиться “текст” и “мое значение”.
Проблема в том что при использовании sendkeys нужный текст выделяется и заменяется вставкой значения которое я передаю. Как сделать чтобы этого не было?
Только способом - getText поля перед вводом и затем sendKeys(getText + мое значение) ?
element.clear()
element.sendKeys(‘some text’) or .setValue(‘some text’)
Я видимо не правильно выразился)
поле для ввода уже имеет введенный текст - @TestText
я вызываю sendKeys(“Тестовое сообщение”)
что делает appium:
выделяет текст @TestText, очищает и вставляет Тестовое сообщение - итог в поле текст:Тестовое сообщение
а мне надо:
чтобы к тексту @TestText добавлялся мой текст Тестовое сообщение и в итоге было:
@TestText Тестовое сообщение
Странно sendKeys не должно очищать поле, только setValue очищает…
А так только гет + текст
Здравствуйте
sendKeys(‘text’)
В браузере на ПК всегда отрабатывает так находит поле и вставляет туда значение, которое вы передаёте, если что-то уже было он добавляет в это поле, передаваемый текст, если конечно перед send(’…’) вы не делаете clear().
не делаю я clear()
в данном случае я использую android приложение, хотя сути нет наверное и мне кажется очистка поля перед вставкой вшита в метод sendKeys
Посмотри в исходниках библиотеки что используешь, как там это запилено (я всегда так делаю)…
В первую очередь, как уже советовали, надо поискать clear(). Вы его не использовали, но где-то он может быть впилен. Во-вторых, если все же это черная магия и козни злопыхателей - можно вытягивать текущее значение из инпута, лепить к нему то, что вы собираетесь добавить и выплонять этот вражеский sendKeys.
Это на самом деле ‘баг’ аппиума, прочитайте тред, там есть отсылки к причине, но похоже не пофиксили еще: