![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заполнение странички с помощью TWebBrowser [WinXP]
pvr © (2011-03-02 17:24:00)Пытаюсь вводить данные в веб-страничку. На ней вижу надписи, INPUT'ы и кнопку. Посредством WebBrowser.OleObject.Document.all.item(I) перебираю все
элементы, входящие в документ. Вижу кое-какие надписи, но не вижу ничего похожего на поля ввода. Зато вижу элемент с тэгом IFRAME и со свойством type="Документ HTML". Похоже, мои поля ввода лежат в этом фрейме.
Достаю ссылку на фрейм:
IFrame := WebBrowser.OleObject.Document.getElementsByTagName('IFRAME').item(0).
Смотрю количество элементов во фрейме:
Cnt := IFrame.all.length (или IFrame.childNodes.length)
и вижу 0.
В каком направлении копать, чтобы добраться до нужных контролов?
PS: Я бы привёл URL сайта, но там протокол https, и без сертификата на сайт не пройти (опубликовать его я, понятное дело, не могу).
Anatoly Podgoretsky (2011-03-04 09:50:00) [1]> sniknik (03.03.2011 18:01:15) [15]
Мне тоже не понятно при чем тут сертификаты и POST
Anatoly Podgoretsky (2011-03-04 09:49:00) [2]> sniknik (03.03.2011 18:01:15) [15]
Посмотри примеры по Инди
Anatoly Podgoretsky (2011-03-04 09:48:00) [3]> pvr (03.03.2011 16:52:13) [13]
С сертификатом не знаю как быть, я никогда не обращал внимания на эту часть.
Но легче всего TWebBrowser и не надо беспокоиться об работе с сертификатом,
TWebBrowser возьмет все на себя.
Есть еще одна интересная штука, которая позволяет избавиться от
использования TWebBrowser и Инди - это WinInet.dll - подробности в MSDN, по
Инету есть ссылки и на русский текст
Loginov Dmitry (2011-03-03 21:57:00) [4]
> Во-вторых, я не знаю инструментов, с помощью которых я бы
> смог посмотреть, что браузер готовит в POST-запросе.
Вот один из таких инструментов:
http://www.fiddler2.com/fiddler2/
pvr (2011-03-03 18:11:00) [5]sniknik © (03.03.11 18:01) [15]
Удалось извлечь ключ. Что касается Firefox, то на их сайте про эту ощибку говорится, что не поддерживают такой сертификат.
sniknik (2011-03-03 18:01:00) [6]> Не удаётся поставить сертификат на Firefox - не понимает он его, поэтому и плагины мне не помогут :(
упомянутые плагины нужны не для решения конкретной задачи (для решения подойдет мой 1 пост 2 абзац), а для того чтобы разобраться "что происходит" т.е. в каком виде посылаются данные формы. не обязательно смотреть на защищенном сертификатами сайте.
хотя кстати не понятно почему не удается сертификат поставить...
pvr (2011-03-03 17:24:00) [7]sniknik © (03.03.11 16:29) [12]
легко смотреть, что происходит, поставив "мазилу" и пару плагинов - HttpFox и/или Firebug
Не удаётся поставить сертификат на Firefox - не понимает он его, поэтому и плагины мне не помогут :(
pvr (2011-03-03 16:52:00) [8]Anatoly Podgoretsky © (03.03.11 16:23) [10]
Поскольку ты тут же ведешь речь и про Инди, то можешь посмотреть в его примерах, как делать пост запросы.
Параметры пересылаются как поток.
А как всё же быть с сертификатом?
Anatoly Podgoretsky (2011-03-03 16:29:00) [9]> sniknik (03.03.2011 15:19:09) [9]
ИЕ и TWebBrowser используют WebBrowser Active X
sniknik (2011-03-03 16:29:00) [10]> WebBrowser скрывает всю кухню
IE скрывает... т.к. внутри он.
легко смотреть, что происходит, поставив "мазилу" и пару плагинов - HttpFox и/или Firebug (в одном удобнее одно в другом другое, но смотреть можно и там и там).
Anatoly Podgoretsky (2011-03-03 16:23:00) [11]
> Если вы мне скажете, что мне делать с ключами, и как посмотреть
> POST-запрос, то я бы охотнее обошёлся без WebBrowser.
Параметры можно посмотреть глазами, они все на страницы. Естественно WebBrowser для отправки POST запроса не нужен, обычно отсылается подготовленый StringList.Text
Формат стандартный ParName=Value по одному параметру на строчку.
WebBrowser скрывает всю кухню
Поскольку ты тут же ведешь речь и про Инди, то можешь посмотреть в его примерах, как делать пост запросы.
Параметры пересылаются как поток.
Я использую ICS
sniknik (2011-03-03 15:19:00) [12]> Во-первых, я не могу извлечь из сертификата ключи;
в браузере немного другой тип чем поддерживает indy (x509), хотя его вроде и можно "разобрать" в нужную форму (читал но не делал)
то я бы охотнее обошёлся без WebBrowser.
проще, раз уж в IE все стоит использовать XmlHttpRequest, а не TWebBrowser.
pvr (2011-03-03 15:17:00) [13]clickmaker © (02.03.11 17:33) [3]
загрузить то, что у него в src и работать как с отдельным документом
Как я сказал, происходит ошибка сценария. Дело в том, что, когда я перехожу по адресу из scr, в джава-скриптах используется неинициализированная глобальная переменная. Может быть, под "загрузить" понимается не Navigate?
pvr (2011-03-03 15:08:00) [14]Я имел в виду TIdSSLIOHandlerSocketOpenSSL.
pvr (2011-03-03 14:56:00) [15]Loginov Dmitry © (02.03.11 21:22) [5]
Цель - передать форму на сервер. Но я не представляю, как к ней подступиться без браузера. Во-первых, я не могу извлечь из сертификата ключи; как мне при этом настраивать TIdServerIOHandlerSSLOpenSSL? Во-вторых, я не знаю инструментов, с помощью которых я бы смог посмотреть, что браузер готовит в POST-запросе.
Если вы мне скажете, что мне делать с ключами, и как посмотреть POST-запрос, то я бы охотнее обошёлся без WebBrowser.
Loginov Dmitry (2011-03-02 21:22:00) [16]
> В каком направлении копать, чтобы добраться до нужных контролов?
Цель-то в чем основная? Попрактироваться в заполнении визуальных элементов формы, или же передать форму на сервер? Если второе, то зачем WebBrowser?
pvr (2011-03-02 18:11:00) [17]Я прочитал содержимое свойства src и сделал Navigate по этому адресу. Оно сказало, что ошибка в выполнении сценария, но отобразило фрейм и позволило заполнить поля ввода. Когда я сделал click() на кнопку, то опять произошла ошибка в выполнении сценария и переход не состоялся.
2 clickmaker ©. Спасибо. К сожалению, нужно уходить отмечать ДР. завтра, если можно, ещё поспрашиваю.
clickmaker (2011-03-02 17:33:00) [18]загрузить то, что у него в src и работать как с отдельным документом
pvr (2011-03-02 17:33:00) [19]Да, он и не содержит. Но что делать-то?
clickmaker (2011-03-02 17:31:00) [20]ну если у iframe указан src, то он сам по себе и не должен ничего содержать