Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Ruby: Общие вопросы > Эмуляция браузера средствами Ruby |
Автор: moonshiner 12.10.2010, 19:56 |
Добрый день, В ruby новичок, но сразу же возникла задача написать скрипт, который логинился бы на определенный хост, выбирал в паре-тройке drag&drop'ов нужные поля и нажимал кнопку Apply. После чего переходил по другой ссылке на том же хосте и стягивал файл. Сколько искал примеров реализации подобной задачи ничего не нашел кроме разве что одного и того же материала касательно HTTP POST & GET. Это благо и на ruby-doc.org имеется... Может быть кто-то сталкивался с подобного рода задачей и может показать как это реализуется. Заранее большое спасибо. |
Автор: moonshiner 13.10.2010, 09:16 |
Спасибо за ссылки, буду изучать ![]() |
Автор: solenko 13.10.2010, 09:38 | ||
selenium rc и другие тестовые фреймверки |
Автор: moonshiner 14.10.2010, 19:34 | ||
Доброго времени суток, Подскажите пожалуйста что я делаю не так.. "код" если его можно так назвать, написал используя Guide с оф сайта Mechanize. Судя по логам приложения, скрипт только по ссылкам ходит, но выборку из drop down полей не делает :-( может есть у кого идеи? Заранее спасибо
|
Автор: source777 15.10.2010, 19:34 |
А что должен? Это твоя работа - указать какие HTTP запросы отсылать серверу, а не полагаться на искусственный интеллект Mechanize, которого у него и не было никогда. |
Автор: moonshiner 16.10.2010, 00:43 |
А разве нет? При нажатии на последнюю сслыку (c href /filter/) в браузере в логи пишется что мол пришел POST запрос. При выполнении скрипта такого не происходит, хотя жмакается та же самая ссылка. Я просто не пойму что я делаю не так... |
Автор: solenko 16.10.2010, 07:57 | ||
Если при гажатии ссылки отправляется POST запрос, значит отрабатывает JS, который мечанайз выполнять не умеет. |
Автор: source777 16.10.2010, 12:36 | ||
Ты пытаешься эмулировать действия пользователя, вместо того чтобы автоматизировать последствия этих действий. Юзер может 2 часа заполнять формы, таскать всякие js-контролы из стороны в сторону, а результатом его действий станет один единственный HTTP-запрос. А ты вместо того, чтобы просто автоматизировать нужные HTTP-запросы, пытаешься непонятно с какой целью эмулировать действия пользователя. Иногда действия пользователя эмулируют с целью интеграционного тестирования, но для решения поставленной в топике задачи - это затея совершенно неподходящая и несоразмерно сложная. Складывается ощущение, что ты видишь сайт только с точки зрения пользователя, что крайне вредно в данном случае. Так что изучи хотя бы основы HTTP, прежде чем приступать к задачам автоматизации.
Так нафига Mechanize знать про какой-то JS? Ему достаточно сделать конкретный http://mechanize.rubyforge.org/mechanize/Mechanize.html#M000238 с конкретными параметрами. |
Автор: moonshiner 20.10.2010, 10:01 | ||||
Доброе утро, А никто не сталкивался с подобного рода проблемой: при попытке сделать post запрос mechanize выкидывает такую ошибку:
сам скрипт:
|
Автор: source777 20.10.2010, 19:46 | ||||
Сервер не может обработать запрос, скорее всего ошибка в запросе.
Ты имел в виду это:
? |
Автор: moonshiner 28.10.2010, 09:58 |
День добрый! Как выяснилось, приложение "умеет" сохранять форму запросов (выборку drag&drop).. POST запрос не потребовался, задача решена с помощью GET. Всем большое спасибо за помощь! |