Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/32: Рейтинг темы: голосов - 32, средняя оценка - 4.63
32 / 29 / 12
Регистрация: 04.03.2013
Сообщений: 896

Заполнение веб формы в WebBrowser

29.06.2013, 21:03. Показов 6962. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Ищу информацию по заполнению веб формы, которая открывается в WebBrowser.
В программе есть Edit'ы, TWebBrowser и кнопка. После их заполнения, пользователь жмет на кнопку и веб форма заполняется. Больше никаких действий не нужно.
Помогите реализовать свою идею, пожалуйста. Очень давно над этим бьюсь. Работаю в С++ Builder.

Код веб формы:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<table style="padding: 2px 5px 5px 2px; vertical-align: top;">
        <tr>
            <td>
                <strong>URL:</strong><br />
                <div class="small">Только http://, https:// или ftp://</div>
            </td>
            <td>
                <input type="text" name="bm_url" id="bm_url" maxlength="500" value="http://" style="width:320px;" />
            </td>
        </tr>
        <tr>
            <td>
                <strong>Заголовок:</strong><br />
                <div class="small" id="url_maxchars">макс. 100 знака</div>
                <div class="small hidden" id="url_charsleft">Вы можете ввести еще <span id="url_charsleft_value"></span>&nbsp;знаков</div>               
            </td>
            <td>
                <input type="text" name="bm_description" id="bm_description" class="title" value="" style="width:320px;" />
                 <a href="javascript:addurl_mark_top_fav();"><img src="img/top_favorite_on.gif" border="0" id="top_fav_marker" alt="als Top-Favorit markieren" title="als Top-Favorit markieren" style="padding-top: 2px;" /></a>
            </td>
        </tr>
 
        <tr>
            <td valign="top">
                <strong>Комментарий:</strong>
                <div class="small" id="bookmark_maxchars">макс. 200 знака</div>
                <div class="small hidden" id="bookmark_charsleft">Вы можете ввести еще <span id="bookmark_charsleft_value"></span>&nbsp;знаков</div>
            </td>
            <td>
                <textarea id="bm_notice" name="bm_notice" style="width:320px;" rows="5"></textarea>
            </td>
        </tr>
 
        <tr>
            <td>
                <strong>Теги:</strong>
                <div class="small">ключевые слова<br /> (разделять пробелом)</div>
            </td>
            <td>
                <input type="text" name="bm_tags" id="addurl_tags" maxlength="400" value="" style="width:320px;" autocomplete="off" onkeypress="return noenter()" /><br />
                <div id="suggest"></div>
                <div id="tag_suggestions"></div>
            </td>
        </tr>
        
            <tr>
                <td valign="top">
                    <strong>Статус:</strong>
                </td>
                <td>
                    <label><input type="radio" id="bm_status_public" class="radio" name="bm_status" value="public" checked  />публичная (стандартная опция)</label>
                    <br />
                    <label><input type="radio" id="bm_status_private"  class="radio" name="bm_status" value="private"   />Скрытая (только Вы видите эту закладку)</label>
                </td>
            </tr>
            
            <tr style="display:none;">
                <td valign="top"><strong>:</strong></td>
                <td>
                
                <input type="checkbox" id="twitter_checkbox"  name="twitter" value="yes" onchange="toggle_twitter_data()" onclick="this.blur();" /> <label for="twitter_checkbox"><img src="./img/twitter.png" style="margin-bottom: -2px" /></label> <span>(<a href="javascript:void(0)" onclick="toggle_twitter_what()"></a>)</span>
                    <div class="twitter_data twitter_hint hidden" id="twitter_what"><h3></h3> 
                        
                    </div>
                
                    <div id="twitter_data" class="twitter_data  hidden">
                        <div class="twitter_userdata hidden" id="twitter_userdata">
                            <input type="text" id="twitter_username" name="session[username_or_email]" value="" onfocus="twitter_input_reset(this, '')" onblur="twitter_input_fill(this, '')"  /> 
                            <input type="text" name="twitter_password2" id="twitter_password2"  value="" onfocus="twitter_chn_psw()" /><input type="password" id="twitter_password" name="twitter_password" class="hidden" onblur="twitter_chn_psw2()" />
                            <div class="twitter_privacy"><input type="checkbox" name="twitter_save_data" checked="checked" value="yes" id="twitter_checkbox" />  <br /><span>(<a href="javascript:void(0)" onclick="toggle('twitter_privacy')"></a>)</span></div>
                        </div>
                        
                        <div class="twitter_hint hidden" id="twitter_privacy"><h3></h3>
                            
                        </div>
                        
                        <div id="twitter_message_wrapper" style="position: relative">
                            <div class="small twitter_charsleft hidden" id="twitter_charsleft">Вы можете ввести еще <span id="twitter_charsleft_value"></span>&nbsp;знаков</div>
                            <div class="small twitter_charsleft hidden" id="twitter_chars"></div>
                            <div class="twitter_preview hidden" id="twitter_preview" /></div>
                            <textarea name="twitter_message" id="twitter_message2" rows="3" onfocus="twitter_input_reset(this, '')" onblur="twitter_input_fill(this, '')"></textarea>
                            <input type="button" value="" onclick="twitter_preview()" id="twitter_preview_btn" />
                            <input type="button" value="" onclick="twitter_preview()" id="twitter_edit_btn" class="hidden" />
                        </div>
                        
                    </div>
                    
                </td>
            </tr>
            
            <tr>
                <td valign="top">
                    <strong>Are you a human?</strong>
                </td>
                <td>
                    <script language="javascript">
                    document.write("20 - 7 =");
                    </script>
                    <input type="text" name="code" style="width: 20px;" />
                    <input type="text" name="password2" style="display:none" />
                </td>
            </tr>
            
        <tr>
            <td>&nbsp;</td>
            <td>
            
                                
                <script language="javascript">
                    document.write('<input name="addurl" value="сохранить закладку" class="button" type="button" id="addurl-submit" onclick="submit()" />');
                </script>
 
                <noscript>
                    <input name="addurl" value="сохранить закладку" type="submit" class="button" />
                </noscript>
                
            </td>
        </tr>


На сайт захожу так:

C++
1
WebBrowser1->Navigate("http://www.mister-wong.ru/add_url/");
Помогите с кодом для заполнение полей в данном случае. Буду очень признателен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.06.2013, 21:03
Ответы с готовыми решениями:

WebBrowser заполнение формы содержащей Ajax
Добрый день! Не уверен в той ветке пишу или нет поэтому не серчайте. Проблема следцющая, я хочу написать програмку которая будет...

Заполнение полей формы через элемент webbrowser
Через элемент WebBrowser открываю сайт На сайте форма На форме есть текстовые поля, чекбоксы и поля с выбором значений С первыми...

Заполнение веб формы
Всем, привет. Столкнулся с такой проблемой, пытаюсь заполнить поля на сайте, но не могу увидеть форму ввода логина и пароля. попытка с...

24
32 / 29 / 12
Регистрация: 04.03.2013
Сообщений: 896
06.07.2013, 13:12  [ТС]
Студворк — интернет-сервис помощи студентам
спасибо. получилось. теперь буду пробовать переделать под себя

Добавлено через 1 час 0 минут
Цитата Сообщение от Avazart Посмотреть сообщение
Обновил там в теме...
В Интернете много где встречается один и тот же код для заполнения TEXTAREA:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void __fastcall TForm1::Button5Click(TObject *Sender)
{
  IHTMLDocument2 *pHTMLDocument = NULL;
  if (SUCCEEDED(WB->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pHTMLDocument)))
  {
    if(pHTMLDocument!= NULL ) {
      IHTMLElementCollection *pAll = NULL;
      if ( SUCCEEDED ( pHTMLDocument -> get_all ( &pAll ) ) && pAll ) {
        TVariant vIndex = 0;
        IDispatch *pDisp1 = NULL;
        TVariant vName1 = "txtSM"; // ?? ???? ???? <TEXTAREA name=text ....
        WideString iniString = "текст смски"; //  TEXTAREA
        if ( SUCCEEDED ( pAll -> item ( vName1, vIndex, &pDisp1 ) ) && pDisp1 ) {
          IHTMLTextAreaElement *pInput = NULL;
          if ( SUCCEEDED ( pDisp1 -> QueryInterface ( IID_IHTMLTextAreaElement, ( LPVOID* )&pInput ) ) && pInput ) {
            pInput -> put_value ( iniString );
            pInput -> Release ();
          }
          pDisp1 -> Release ();
        }
      }
      pAll -> Release ();
    }
  }
}
Однако при компиляции программы появляются 2 ошибки:
1. Е2034 Cannot convert 'WideString' to 'wchar_t*'
2. E2342 Type mismatch in parameter 'v' (wanted 'wchar_t*', got 'WideString')

Не подскажете в чем причина? Мне нужно просто заполнить поле, без нажатия на кнопку в веб форме и т.д.
Может быть это из-за того, что работаю в C++Builder XE4, а код для другой версии программы...
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.07.2013, 13:17
Цитата Сообщение от iiwanc Посмотреть сообщение
спасибо. получилось.
Так ?
Цитата Сообщение от iiwanc Посмотреть сообщение
Не подскажете в чем причина?
Что подсказать если получилось?
0
32 / 29 / 12
Регистрация: 04.03.2013
Сообщений: 896
06.07.2013, 13:27  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Что подсказать если получилось?
Я делаю заполнение веб формы, в которой присутствуют 4 строки, которые нужно заполнить.
Однако одна строка в коде HTML имеет вид (TEXTAREA):
HTML5
1
2
3
4
5
6
7
8
9
10
<tr>
            <td valign="top">
                <strong>Комментарий:</strong>
                <div class="small" id="bookmark_maxchars">макс. 200 знака</div>
                <div class="small hidden" id="bookmark_charsleft">Вы можете ввести еще <span id="bookmark_charsleft_value"></span>&nbsp;знаков</div>
            </td>
            <td>
                <textarea id="bm_notice" name="bm_notice" style="width: 320px; margin-right: 0px; padding-right: 0px;" rows="5"></textarea><img title="Максимальная длина текста в поле неизвестна" style="position:relative; z-index: 999; cursor:pointer; vertical-align: bottom; border: 0; width: 14px; height: 19px; display:inline;" class="ife_marker" src="chrome://informenter/skin/marker.png" id="bm_notice_ife_marker_8">
            </td>
        </tr>
Вот с этим у меня проблема.

Другие поля имеют вид:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
<strong>Теги:</strong>
                <div class="small">ключевые слова<br> (разделять пробелом)</div>
            </td>
            <td>
                <input name="bm_tags" id="addurl_tags" maxlength="400" value="" style="width: 320px; margin-right: 0px; padding-right: 0px;" autocomplete="off" onkeypress="return noenter()" type="text"><img title="Максимальная длина текста в поле - 400" style="position:relative; z-index: 999; cursor:pointer; vertical-align: bottom; border: 0; width: 14px; height: 19px; display:inline;" class="ife_marker" src="chrome://informenter/skin/marker.png" id="bm_tags_ife_marker_3">

Они отлично заполняются
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.07.2013, 13:28
Ссылку на HTML страницу можно ?
0
32 / 29 / 12
Регистрация: 04.03.2013
Сообщений: 896
06.07.2013, 13:29  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Ссылку на HTML страницу можно ?
http://www.mister-wong.ru/add_url/
но там требуется авторизация
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.07.2013, 13:29
Помогаю со студенческими работами здесь

Заполнение веб формы в WPF
в WinForms это выглядит примерно так: // логин webBrowser1.Document.GetElementById(&quot;login&quot;).SetAttribute(&quot;value&quot;,...

Заполнение веб-формы приложением
Добрый день. Нужна подсказка в следующем вопросе: Имеется веб-страница с одним текстовым полем и одной кнопкой. Хочу написать приложение...

Заполнение веб-полей формы из файла
Подскажите плиз. нужно заполнять поля на веб странице. начало загружаем веб страницу: procedure TForm1.FormCreate(Sender: TObject); ...

Заполнение формы на веб сайте через программу
Как автоматически заполнить поля на веб сайте .Заранее спасибо.

Заполнение полей веб-формы сайта в Chrome
Доброго времени суток, уважаемые участники форума. Очень давно сижу на просторах сети и пытаюсь найти более-менее понятную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru