Страница: 1 |
Страница: 1 |
Вопрос: Заполнения веб форм при помащи WebBrowser
Добавлено: 22.02.08 14:09
Автор вопроса: mannaz2007
Народ помогите как запомнить веб форму а потом отправить даные при помощью WebBrowser
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
AntiXaker
Вопросов: 1
Ответов: 24
Web-сайт:
Профиль | | #1
Добавлено: 23.02.08 22:38
Этому надо целою статью посвещать!
P.S. Проще будет отправить при помощи winsock.
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 23.02.08 22:49
да нет, достаточно открыть справочник по DOM. Вот функция из одного давнешнего проекта моего, она именно заполняла формы в WB. Правда писал на VB6, но я недумаю что там большая будет разница.
sPole As String
sVal As String
End Type
'========================================================================
' * Заполнение любых TextBox'ов, в любой форме, на любом фрейме
' (Работа с элементами)
' WB - Объект WebBrowser
' sFrame - Имя (или индекс) фрейма в котором заполняем поля (vbNullString если нет фрейма)
' sFormName - Имя (или индекс) формы в которой заполняем поля
' pv - Массив структур полей и их значений
' Submit - отправлять ли форму полсе заполнения (По умолчанию False)
Public Sub SubmitForm(WB As WebBrowser, sFrame As String, sFormName, pv() As PostVar, Optional Submit As Boolean = False)
On Error GoTo e
Dim i As Byte
Dim From, obj, o
Call Sleep(200&
ClearError
If Trim$(sFormName) = "" Then sFormName = "#1"
DoEvents: DoEvents
Call Sleep(200&
'Устанавливаем Document у страницы
If Trim$(sFrame) = "" Then 'Если фрейма нет, Document наследуется от WB
Set o = WB.Document
Else 'Если есть...
'Проверяем имя или индекс указан в качестве фрейма
If InStr(1, sFrame, "#", 1) > 0 Then 'Если индекс
Set o = WB.Document.frames(Val(Replace(sFrame, "#", "")).Document 'Наследуем Document по индексу фрейма
Else 'Если имя
Set o = WB.Document.frames.Item(CStr(sFrame)).Document 'Наследуем Document по имени фрейма
End If
End If
'Dcoument фрейма (или без него) на этом этапе определён
'Определяем форму, наследуя объекст o (Он является Document)
If InStr(1, sFormName, "#", 1) > 0 Then
Set From = o.Forms(Val(Replace(sFormName, "#", ""))
Else
Set From = o.Forms.Item(CStr(sFormName))
End If
'Заполняем элементы в определённом фрейме и форме
For i = LBound(pv) To UBound(pv)
If Trim$(pv(i).sPole) <> "" Then
Set obj = From.elements.Item(CStr(pv(i).sPole))
obj.Value = pv(i).sVal
End If
Next i
Call Sleep(100&
If Submit Then From.Submit 'Сабмитим форму
Call Sleep(100&
Exit Sub
e:
LastErrorDescription = err.Description
LastErrorNumber = err.Number
End Sub
Номер ответа: 3
Автор ответа:
mannaz2007
Вопросов: 1
Ответов: 5
Профиль | | #3
Добавлено: 24.02.08 16:57
Ну тогда напиши! Толька не надо писать что типа таво! user=mannaz&password=12414 Это не прокатывает
Номер ответа: 4
Автор ответа:
mannaz2007
Вопросов: 1
Ответов: 5
Профиль | | #4
Добавлено: 24.02.08 17:01
дай ссылочку или кинь на mannaz2007@mail.ru
Если у каво ещё есть придлажения помагите!
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 24.02.08 18:35
пажалуста пеши без ашипок ета сильна расдрожает миня!!!
Номер ответа: 6
Автор ответа:
mannaz2007
Вопросов: 1
Ответов: 5
Профиль | | #6
Добавлено: 24.02.08 19:36
Говорят что есть такая функция заполнения толька я не магу догнать!" как? вот этим? помогите! WebBrowser1.Document.Forms. Мне б что нибуть бы из vb.net
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 24.02.08 20:17
я тоже ниче не мАгу!!! памагите!!!!!!!!!!1
Номер ответа: 8
Автор ответа:
mannaz2007
Вопросов: 1
Ответов: 5
Профиль | | #8
Добавлено: 25.02.08 20:08
Всё нашол как запонять поля осталось толька зделать эмуляцию по кнопке отправке
Номер ответа: 9
Автор ответа:
mannaz2007
Вопросов: 1
Ответов: 5
Профиль | | #9
Добавлено: 27.02.08 14:49
P.S. Проще будет отправить при помощи winsock.
У меня в 4 строчки получилась и не надо чтатью посвещать!
Вот народ пользуетесь
WB.Document.GetElementById("kerio_username".InnerText = "admin"
WB.Document.GetElementById("kerio_password".InnerText = "251989"
WB.Document.GetElementById("man".Focus()
' WB.Document.Forms("ach".All.Item("man".InvokeMember("click"
WB.Document.All.Item("man".InvokeMember("click"