2015-09-22 4 views
2

Я решаю следующую проблему: я не могу очистить поле пароля через AppiumDriver (AndroidDriver). Команда clear() не очищает поле, а затем новый текст будет установлен перед старым.Appium - как очистить поле пароля?

Странно также четкое поведение простого текстового поля (журнал appium):

  1. Клиринговый текст не увенчались успехом. Попытка очистить, выбрав все и удалив.
  2. Очистка текста не удалась. Попытка очистки с отправки ключей удаления.

После этого текст был действительно очищен.

Назад в поле пароля. Может быть, проблема в том, что Appium не может видеть каких-либо символов в поле пароля, а затем действовать так, как будто поле не заполнено?

Я нашел обходное решение здесь, в других сообщениях, чтобы пометить все поле и отправить команду delete, но сам AppiumDriver не поддерживает команду sendKeyEvent(). Так что это не сработает для меня.

Использована Appium 1.4.8, appium Java-клиент 3.0.0

+0

Вы используете эмулятор? Я, и я обнаружил, что даже когда я вручную взаимодействую с полем пароля, выберите все, которое будет переопределено. – kiminoa

+0

Привет, kiminoa - нет Я использую настоящее устройство. –

+0

убедитесь, что вы вызываете правильный экземпляр драйвера. например self.driver. Для меня работает self.driver.clear(). Сначала попробуйте отправить нулевые символы, а затем отправить пароль. например element.send_keys ("") – user2661518

ответ

0

Я также столкнулся с проблемами с очистив поле пароля, используя Android Emulator + Appium + питона. Обходные решения, упомянутые в других разделах, требуют отжимания или двойного нажатия на все, но эмулятор с радостью переопределяет это путем отмены выбора, даже когда я пытался сделать это вручную на эмуляторе.

До тех пор, пока еще несколько исправлений, доступных как с Appium и эмулятором, я решил принять это решительные действия во время каждого tearDown() в моих тестах:

self.driver.reset()

Среди прочего, он очищает пароль поле;) Если у вас есть заданный параметр «noReset», прокомментируйте это, гм, «обходной путь».

+0

Прежде всего, спасибо за ваш ответ - но это не обходной путь, который я предпочту. Потому что я не оставлю представление, но reset(), насколько мне известно, перезапустит приложение. –