Оговорюсь сразу: Web-браузер = InternetExplorer и только.
Предлагаю Вам следующую схему:
демонстрация возможностей + разработка пары небольших тестовых сценариев - бесплатно. :dirol:
Далее, если Вы примете положительное решение, консультирование по конкретным задачам, обучение сотрудников и разработка скриптов - за небольшое вознаграждение (договоримся


Сама программа бесплатна и никакой активации/регистрации не требуется, так что возможен вариант, когда консультирование/обучение/разработка с моей стороны будут минимальны

Что касается инструмента:
1. требования: .NET Framework 2.0, только (!) InternetExplorer.
Желательно ic#code (бесплатная) или VS2005 - для разработки скриптов. Минимально же подойдет Notepad.
2. Принцип действия: MS Active Accessibility и MS DHTML Object Model (mshtml.dll).
3. скрипты компилируются в .NET dll-ку. Язык - C#, но больших навыков программирования не надо - синтаксис примерно такой:
Код: Выделить всё
WebElement el=new WebElement();
el.Run("www.sometestsite.com");
Thread.Sleep();
el.GetWindow(1,false,"www.sometestsite.com/index.html").GetElement("<INPUT id=testID name='test'>").Click();
Thread.Sleep();
el.GetWindow(1,false,"www.sometestsite.com/index.html").GetElement("<INPUT id=testID name='test'>").SetText("test");
4. строки кода el.GetWindow(...).GetElement(...).<Action> генерируются автоматически, что до остального, то C# - это полноценный язык программирования.
5. Многопоточность выполнения скриптов (с ограничениями) - запустить можно сразу несколько IE независимо.

По поводу применимости программы :victory: - есть успешный опыт выполнения двух задач (ASP.NET/MS SQL сервер + IE клиент):
1. Эмуляция 20 - 30 пользователей. Необходимо было отловить и воспроизвести баг на сервере, причем нужно было именно эмулировать работу пользователя (клики, ввод данных), а не запрашивать наборы Web-страниц с сервера.
2. Выявление и протоколирование утечек памяти IE из-за (как потом выяснилось) багов/особенностей самого IE по обработке анонимных JavaScript функций и взаимодействия DOM <-> JavaScript