Нахожусь в поиске средств по сабжу.
Пример. Хочется десктопное .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 — не проблема.
Вот сейчас в тупике и не вижу куда лучше копать дальше? Может кто шарящий намекнёт хотя бы?