Страницы: 1
RSS
Эмуляция нажатия клавиши клавиатуры в веб-форме
 
Доброй ночи!

Возможно, в названии темы описал вопрос не очень точно.
Ситуация следующая: есть сайт с множеством веб-форм. Данные веб-формы управляются скриптами javascript.
Написал макрос для заполнения веб-форм текстом их книги Эксель. Все работает, данные в формы вставляются. Но далее возникает проблема: веб-формы не проходят проверку на заполнение и показываются так, как будто в них ничего не записано, хотя, по факту, данные в формы вставлены и их видно.
Видимо, это особенность скрипта js.
Экспериментируя выяснил, что после отработки макроса и вставки данных в форму, данные в форме проходят проверку на корректность есть, к примеру, добавить пробел в тексту в форме. И второй способ - вставка любого текста (даже пробела) в дополнению к существующему тексту в форме. То есть, должно произойти действие именно от клавиатуры или мышки, вставку текста макросом в формы - веб-формы сайта видеть  не хотят.

Пытался добавить в веб-форму к тексту лишний пробел и потом убрать его при помощи команды SendKeys "{BACKSPACE}", но этот вариант не работает. Возможно, потому что использую команды getElementsByTagName и getElementsByClassName. Возможно, SendKeys с этими командами не работает.

Подскажите, пожалуйста, может у кого-то был похожий опыт. Как можно обойти проверку правильности заполнения веб-форм, если для прохождения проверки необходимо с клавиатуры вписать в заполненное поле формы хотя бы один символ или хотя бы один символ вставить в поле формы?

Спасибо!
 
Для вставки данных через  SendKeys необходимо активировать окно браузера.
Перенести фокус на элемент вставки, elem.Focus.И через SendKeys отравить данные.
Между вставками в элементы формы сделать задержку в секунду.
Не помешал бы и анализ скриптов.
Изменено: Doober - 12.08.2017 16:55:45
 
Doober, спасибо за ответ!

Да, листая форумы, посты, я пришел к тому, что SendKeys можно использовать только при активации окна браузера.
Активация элементов форм у меня получается сложностей.
Сложность возникла при активации окна браузера.
Пробовал IE.visible = true IE.Activate но оба варианта не фокусируют окно браузера, он не разворачивается.

Работаю с уже открытым браузером, без создания его с нуля и вставки URL через Navigate.
Конечно, вопрос уже не совсем совпадает с темой данного поста, но, если возможно, подскажите, пожалуйста, есть какой-либо прием по активации окна браузера IE сразу после запуска макроса?
 
Есть в загашнике.
Код
 IE.Document.Focus
Ссылка на сайте под секретом?
Изменено: Doober - 12.08.2017 19:18:42
 
Doober,  огромнейшее Вам спасибо!!!
Практически весь день листаю множество различных форумов, нигде не смог найти такую фишку)

Еще раз спасибо Вам!

UPD: нет, секрета нет :-) Дело в том, что сайт пока только в разработке, еще не запущен и показать на примере, к сожалению, не могу.
Изменено: footballplayer - 12.08.2017 19:22:17
 
Если этот сайт пишут Вам, предусмотрите сразу отправка нужных данных POST запросом с макроса.
Пускай напишут скрипт или модуль под эту задачу
Страницы: 1
Наверх