1 (изменено: yuriy2000, 2012-09-07 22:14:33)

Тема: Помогите выбрать скриптовый язык для автомоатизации заполнения webформ

Господа форумчане!

Подскажите какой из двух языков AutoIT или AutoHotKey удобней/проще/эффективней использовать для целей автоматизации заполнения веб-форм. Или может есть другие варианты?

Ближайшая задача стоит следующая - заносить данные из таблицы Excel в web-форму. в каждой строке таблицы информация для 1 экрана веб-формы. хотелось бы сделать так: выделили строку (или несколько ячеек) в Excel, нажали hot-key - он скопировал содержимое этих ячеек в буфер и потом вставил содержимое в несколько полей веб-формы разом.

PS: Имею большой опыт использования VBScript и небольшой в VBA.

2

Re: Помогите выбрать скриптовый язык для автомоатизации заполнения webформ

yuriy2000 пишет:

Или может есть другие варианты?

VBScript/JScript. Без буфера обмена. Заполнять поля форм, используя DOM. В ряде случаев можно и вовсе обойтись отсылкой url (зависит от метода формы).

yuriy2000 пишет:

PS: Имею большой опыт использования VBScript и небольшой в VBA.

Этого вполне достаточно.

3

Re: Помогите выбрать скриптовый язык для автомоатизации заполнения webформ

Алексей, а может быть Вы подскажите где найти аналогичный пример на VBS, а то я что-то не смог

4

Re: Помогите выбрать скриптовый язык для автомоатизации заполнения webформ

Если бы вы дали пример веб формы, таблицу excel, всем бы было намного проще.

Нас невозможно сбить с пути, нам пофигу куда идти.

5 (изменено: yuriy2000, 2012-09-12 05:06:11)

Re: Помогите выбрать скриптовый язык для автомоатизации заполнения webформ

DnsIs пишет:

Если бы вы дали пример веб формы, таблицу excel, всем бы было намного проще.

выкладываю и Excel  и html
test3.rar

Там в Html-форме имеется javascript, но надеюсь это не сильно помешает...
И еще один нюанс  - html-форма является web-приложением, требующим авторизации, поэтому открыть сразу нужный url не получается.  Мне хотя бы подскажите пример....

Заранее спасибо!

6 (изменено: DnsIs, 2012-09-12 14:29:54)

Re: Помогите выбрать скриптовый язык для автомоатизации заполнения webформ

Конечно у каждого свой путь и вариантов тьма. Подробно расписывать не буду.

AutoHotKey я не знаю, поэтому про него умолчу. Autoit очень мощный язык, думаю, что он все это сможет сделать легко, причем разными путями. Работа через буфер обмена - плохой метод. Фу. Нахождение полей формы на странице IE, заполнение и тыкание по кнопкам тоже мне кажется не правильно.

Я в последнее время все больше пользую JScript. Один из вариантов такой:

Выковыривание данных из xls:

objExcel = new ActiveXObject ("Excel.Application");
objWorkbook = objExcel.Workbooks.Open ("c:\\test.xls");

message = "";
for (i = 1; i < 14; i++) {
    message += objExcel.Cells(1, i).Value + "\r\n\t\t" + objExcel.Cells(2, i).Value + "\r\n"
}
objExcel.Quit();
WScript.Echo(message)

В основном авторизация на сайтах и отправка заполненных форм - GET и POST запросы. Формирование которых возможно на голом JScript, но я давно не практиковал. По неизвестной мне причине, люблю я костыли, поэтому я всегда использую wget или cURL.

Все просто. Берем для примера этот форум. (надеюсь админы не наругают 8)

Авторизация на форуме и сохранение cookie в файл cookies.txt. Для проверки сохранение страницы информации о пользователе в page.htm

var WshShell = WScript.CreateObject("WScript.Shell");
user = "login";
pass = "qwerty";
urlAutorization = "http://forum.script-coding.com/login.php?action=in"
dataPOST = "form_sent=1&redirect_url=index.php&req_username=" + user + "&req_password=" + pass + "&login=%C7%E0%E9%F2%E8";
WshShell.Run('wget -c ' + urlAutorization + ' --save-cookies=c:\\cookies.txt --keep-session-cookies -O nul --post-data "'+ dataPOST +'"', 0, true);
WshShell.Run('wget -c http://forum.script-coding.com/profile.php?id=26282 --load-cookies=c:\\cookies.txt -O page.htm', 0, true);

Вот код, который меняет в профиле пользователя его jabber.

URL = "http://forum.script-coding.com/profile.php?section=messaging&id=26282";
jabber = "www@gmail.com"
dataString = 'form_sent=1&form%5Bjabber%5D=' + jabber + '&form%5Bicq%5D=&form%5Bmsn%5D=&form%5Baim%5D=&form%5Byahoo%5D=&update=%CE%F2%EF%F0%E0%E2%E8%F2%FC';

WshShell.Run('wget -c ' + URL + ' --load-cookies=c:\\cookies.txt -O nul --post-data "'+ dataString +'"', 0, true);

Посмотреть на ваши запросы можно используя сниффер или встроенные средства браузера. В firefox например есть веб-консоль.

Это конечно же лишь один из вариантов.

Нас невозможно сбить с пути, нам пофигу куда идти.

7

Re: Помогите выбрать скриптовый язык для автомоатизации заполнения webформ

DnsIs пишет:

отправка заполненных форм - GET и POST запросы

Например,

text = "Помогите выбрать скриптовый язык для автоматизации заполнения webформ"
url = "http://ya.ru?text=" & text

Set xmlhttp = CreateObject("Msxml2.XMLHttp")
xmlhttp.Open "Get", url, False
xmlhttp.Send
( 2 * b ) || ! ( 2 * b )

8

Re: Помогите выбрать скриптовый язык для автомоатизации заполнения webформ

Rumata, спс. Мне было лень вспоминать.

Вот кстати как WSH с куками работает не знаю, не умею. Наверное через IE как то.

Нас невозможно сбить с пути, нам пофигу куда идти.

9

Re: Помогите выбрать скриптовый язык для автомоатизации заполнения webформ

Господа! Всем огромное спасибо!

Буду разбираться в примерах и пробовать....:)