Эмитация действий человека в браузере
От: d8m1k Россия  
Дата: 18.12.12 18:35
Оценка:
Нахожусь в поиске средств по сабжу.

Пример. Хочется десктопное .Net-приложение для ведения базы данных какого то барахла. И хочется возможности публиковать товары на досках объявлений типа avito, slando, irr. А в базе данных вести централизованный учёт где когда что опубликовано, продано.
Досок много. Подавляющее большинство принимает информацию только через веб интерфейс и вероятно с вариациями AJAX, Flesh, Silverlight. Хочется автоматизировать.
Полностью автоматически вряд ли получиться. Капча, непредсказуемые изменения интерфейсов досок и их логики работы.
То есть неплохо отслеживать где что не сработано делать то вручную и желательно повышенное удобство сопровождения программы.

Знаю, кто то подобным давно занимается и наработок много. Например jcat.ru
Какие средства? Естественно, коммерческая тайна. Конечно написать универсальную программуль в этой теме по-любому не получится. Вариаций может быть масса. А HTML видно самый популярный.

Сам пробовал iMacros. У них компонент для .Net. Напрягает, что скриптовый язык свой, то есть насколько хорошо взаимодействовать с кодом .Net сомнительно. А если требуется разветвлённая логика. В зависимости от значения того то перейти туда-то иначе туда то.
Но ещё больше напрягает стоимость: порядка 100 000 рублей.

Другой вариант Selenium, конкретней WebDriver. Опенсоурсное средство. Под любой браузер. В программе можно запускать браузер управлять содержимым, закрывать. Однако присоединяться к уже запущенному не получается. Или выполнить в фоновом режиме не так просто. Можно делать то же действия без браузера т.н. браузер HtmlUnit, но требуется java машина и запущенным плагином. То есть поставить на другой компьютер такую программуль сложнее. То есть Selenium всё же ближе для тестировщиков.

Для iMacros и selenium есть плагины для записи макросов в браузере руками. А потом предусмотрено вставлять их в код программы.

Ещё вариант. Вероятно для большинства действий достаточно будет System.Net.WebClient. Получать html, отправлять формы на сервер. Быстрее. И просто получать какую то информацию, задавая XPath — не проблема.

Вот сейчас в тупике и не вижу куда лучше копать дальше? Может кто шарящий намекнёт хотя бы?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.