Как отсканировать результаты проверки формы из браузера - PullRequest
0 голосов
/ 09 ноября 2010

У меня есть клиент, который использует стороннее программное обеспечение. На 1 экране мой клиент заполняет форму. Перед отправкой он хочет запустить что-то, что фиксирует введенные данные и вставляет их в csv или базу данных. CSV или часть базы данных легко. Получение данных из браузера, который уже запущен, запуск на другом веб-сервере - это та часть, которую я не знаю, как это сделать.

Как я могу получить содержимое HTML-формы? Я бы предпочел использовать c #, vb.net, vbs или аналогичные, но на самом деле меня интересует что угодно. Я также предпочел бы не устанавливать пользовательское программное обеспечение на клиентскую рабочую станцию, за исключением того, что я пишу здесь. Я также предпочел бы, чтобы пользователи заполнили форму, и они запускают мой сценарий для сбора данных, а не для запуска пользовательского экземпляра браузера.

Спасибо!

Ответы [ 3 ]

1 голос
/ 09 ноября 2010

Если вы или ваш клиент не возражаете против использования приложения Windows Forms, вы можете добавить элемент управления WebBrowser, а затем указать его стороннему веб-приложению.Затем вы можете попытаться получить доступ к элементам веб-страницы (т. Е. К полям формы) через свойство .Document элемента управления.Хотя я не уверен, что вы можете получить доступ к определенным значениям полей формы или нет.

Редактировать
Я смог сделать это с тем, что я сказал.Я создал приложение для форм Windows, добавил элемент управления веб-браузера (webBrowser1) и затем загрузил в него этот HTML-код (с соответствующими тегами , и т. П.):

<form id="form1" method="post" action="test.htm">
  <input type="text" id="testText" name="testText" />
  <br />
  <input type="submit" value="Save" />
</form>

ПримечаниеЯ сделал это, сохранив его в html-файле и используя webBrowser1.Url = new Uri(@"c:\test.htm"); в моем Form_Load событии.

Затем я смог получить доступ ко всему, что набрал в testText, выполнив это:*

Надеюсь, это поможет вам.

1 голос
/ 09 ноября 2010

До того, как пользователь отправит форму, данные существуют только в браузере. Браузер - единственное место, откуда вы сможете получить данные.

Вам понадобится что-то вроде объекта Browser Helper или аналога в FireFox. Вам также придется ограничить использование браузеров, и вам придется поддерживать этот вспомогательный инструмент.

Вам лучше будет сказать клиенту «нет» или найти лучший способ сделать то, что он действительно хочет (например, может быть стороннее приложение должно иметь возможность сохранять то, что ему отправлено).

0 голосов
/ 10 ноября 2010

Я решил использовать javascript и добавить избранное IE или метку Firefox, чтобы добиться этого.Он извлекает данные из формы, отправляет данные на страницу aspx из строки запроса.Страница aspx затем записывает данные в базу данных и отображает всплывающее окно, если запись была успешной или нет.

Вот пример скрипта:

javascript:var oForm = document.forms[0];var name = oForm.elements["name"].value; void window.open("http://www.mydomain.com/page.aspx?data=" + name ,"_blank","resizable,height=130,width=130");

Всем, спасибо за предложения !!

...