Эмуляция клавиатуры ломает форму

  • Автор темы Автор темы Dexio
  • Дата начала Дата начала

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 256
Реакции
219
Баллы
63
Добрый день. Уже не на первом сайте сталкиваюсь, что не могу заполнить форму, из-за того, что эмуляция клавиатуры использует непонятный метод для меня. При заполнении формы ломаются и символы порой даже дублируются. Хотя с клавиатуры нормально.


Пример проекта. Выполняйте по шагам и увидите как съедет форма, и потом НЕ НАЖАТЬ КНОПКУ отправить. Получается клавиатуру неправильно сэмулировало?
Выглядит вот так
X71WWTA.png



Соотв форма не отправляется.
А при ручном заполнении все работает исправно
ji9cUna.png


И аналогичная проблема на битриксе. Подскажите как это могу вылечить? Может знаете еще варианты как с формами работать, у которых js валидация?

Пост/гет не вариант, тк тут слишком много параметров в запросе, интересует именно формат в браузере.
 
я обычно делаю так
  1. клик или фокус на поле ввода
  2. эмуляция кнопки END переброс каретки в самый конец строки
  3. 10-20 эмуляций бекспейс (удаления символов) ну или сколько надо, обычно делаю в 1,5-2 раза больше чем изначальное число символов, на всякий случай :)
  4. потом эмуляция того что надо )
всегда работает )
ну или юзай xPath отличная вещь
 
всегда работает )
Спасибо,я походу ваши посты ранее и читал и по этой логике пытаюсь повторить, но не работает. Посмотрите пожалуйста, вот пример формы, https://drive.google.com/open?id=17JLbTYBy6TL-oEvWkj6TeKoDhvX_Ucs5
заполняю сначала через SET value, но потом не отправляется, я танцую тоже и с backspace и другими и всеравно не отправляется, только форма ломается
 
да, понял что вы имеете ввиду. проблема странная, даже самому интересно стало, пока выхода через браузер не вижу
Спасибо что подтвердили. Самый прикол, что подобное есть еще с формами на битриксе, но тут прямо очень явно проявляется. Возможно кто-то из спецов подскажет нам..
@ibred Не я один такой оказался. Я постарался объяснить, что именно вы не так сделали. Уделите еще минуту, если будет время.. Может ваш опыт решит это быстрее нас)
 
Через Emulator.SendKey работает
 
Спасибо что подтвердили. Самый прикол, что подобное есть еще с формами на битриксе, но тут прямо очень явно проявляется. Возможно кто-то из спецов подскажет нам..
@ibred Не я один такой оказался. Я постарался объяснить, что именно вы не так сделали. Уделите еще минуту, если будет время.. Может ваш опыт решит это быстрее нас)
Зарепортил баг.

Пока что можно использовать такой сниппет:
C#:
Развернуть Свернуть Копировать
string number = project.Variables["phone"].Value; // Например: 9252552242

Dictionary<int, System.Windows.Forms.Keys> keyNum = new Dictionary<int, System.Windows.Forms.Keys>(10);
keyNum.Add(0, System.Windows.Forms.Keys.D0);
keyNum.Add(1, System.Windows.Forms.Keys.D1);
keyNum.Add(2, System.Windows.Forms.Keys.D2);
keyNum.Add(3, System.Windows.Forms.Keys.D3);
keyNum.Add(4, System.Windows.Forms.Keys.D4);
keyNum.Add(5, System.Windows.Forms.Keys.D5);
keyNum.Add(6, System.Windows.Forms.Keys.D6);
keyNum.Add(7, System.Windows.Forms.Keys.D7);
keyNum.Add(8, System.Windows.Forms.Keys.D8);
keyNum.Add(9, System.Windows.Forms.Keys.D9);

foreach (char c in number) {
    var key = keyNum[int.Parse(c.ToString())];
    Emulator.SendKey(instance.ActiveTab.Handle, key, KeyboardEvent.Down);
}

P.S. Возможно, что код не соответствует эталону т.к. я не программист, но со своей задачей он справляется.
 

Вложения

Последнее редактирование:
  • Оценить
Реакции: Sergodjan, Dexio и backoff
Зарепортил баг.
Это прямо баг-баг и разработчики возможно пофиксят?(Как-то реально для человека, которому очень важно, напрмер мне, отследить когда именно бак пофиксили?)

Пока что можно использовать такой сниппет:
Гениальный вы человек, спасибо большое за такое быстрое и РАБОЧЕЕ решение!! весь день мучался с классами и обманом js кода, даже на апи уже часть написал, но апи оч много допов требует, а мне не надо такой масштаб. Очень круто.

Вопрос- Вы гениально ищете кнопку по Xpath необычным сниппетом. Вы его готовый взяли или сами написали? Где про подобные лайфхаки можно прочитать мб кратко?

Последний вопрос)- Это все в один поток только работать будет?
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)