2010-11-09 3 views
0

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

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

Спасибо!

+0

Вы устраняете все очевидные решения. Далее - Greasemonkey. –

ответ

0

Я решил использовать 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"); 

Каждый, спасибо за предложения !!

1

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

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

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

1

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

Редактировать
Я был в состоянии сделать это с тем, что я сказал. Я создал приложение Windows Forms, добавлен элемент управления WebBrowser (webBrowser1), а затем загружаю этот HTML в него (при правильном < 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"); в моем событии.

Я был тогда в состоянии получить доступ, что я напечатал в testText, делая это:

HtmlDocument doc = webBrowser1.Document; //Gets the html document 
HtmlElement elem = doc.Body.All["testText"]; //Gets the input element 
MessageBox.Show(elem.GetAttribute("value")); //Gets the value attribute

Я надеюсь, что это поможет вам.

Смежные вопросы