Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/46: Рейтинг темы: голосов - 46, средняя оценка - 4.87
19 / 19 / 4
Регистрация: 18.02.2011
Сообщений: 292

WebBrowser заполнить поле

25.05.2012, 12:01. Показов 9483. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте ! Нужно заполнить текстовое поле имеющее только атрибуты class и type. Но у меня поле не заполняется, помогите пожалуйста !

Html код поля "<input type=text class="input help_inp input_title"> "
Ниже код, который я написал, чтобы заполнить поле:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  DocS : IHTMLElementCollection;
  Element: IHTMLElement;
  i : Integer;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 
WebBrowser1.Navigate('https://target.mail.ru/ads/create');
 
DocS:=(webbrowser1.Document as IHTMLDocument2).all.tags('input') as IHTMLElementCollection;
for i:=0 to DocS.Length-1 do
Element:=DocS.item(i,0)as IHTMLElement;
if Element.className='input help_inp input_title' then
Element.innerText:='text';
 
end;
Авторизация(запололнение логина и пароля) на сайте target.mail.ru/login - работает. А добавление заголовка объявления(код выше) - не работает. Очень прошу помощи !
 Комментарий модератора 
Теги кода исправлены модератором. Для оформления кода Delphi следует выделить этот код и на панели редактирования сообщения нажать кнопку: "DELPHI".
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2012, 12:01
Ответы с готовыми решениями:

Заполнить поле в WebBrowser
Как заполнить нужное поле, если их 2 одинаковых ? &lt;input name=&quot;pass&quot; type=&quot;password&quot; size=&quot;23&quot; maxlength=&quot;35&quot;...

Webbrowser: программно заполнить поле
Есть input: &lt;input type=&quot;text&quot; value=&quot;&quot; autocomplete=&quot;off&quot; name=&quot;data&quot; class=&quot;text normal&quot;&gt; Как мне заполнить его подскажите...

Как правильно заполнить поле логин пароль в WebBrowser автоматически
Как правильно заполнить поле логин пароль в WebBrowser автоматически. Спасибо

8
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33421 / 21527 / 8240
Регистрация: 22.10.2011
Сообщений: 36,935
Записей в блоге: 12
25.05.2012, 13:52
Delphi
1
2
3
4
5
6
for i:=0 to DocS.Length-1 do
begin // <---
   Element:=DocS.item(i,0)as IHTMLElement;
   if Element.className='input help_inp input_title' then
      Element.innerText:='text';
end; // <---
Причину понимаешь?
1
19 / 19 / 4
Регистрация: 18.02.2011
Сообщений: 292
25.05.2012, 14:07  [ТС]
UI, извините за странный вопрос. Просто я пишу на C#, и синтаксис Delphi знаю плохо. Зачем нужно ставить после цикла for begin. Я же ставил после procedure
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33421 / 21527 / 8240
Регистрация: 22.10.2011
Сообщений: 36,935
Записей в блоге: 12
25.05.2012, 14:14
Все то, что между begin/end выполнится в цикле. Иначе в цикле будет выполняться только строка

Delphi
1
Element:=DocS.item(i,0)as IHTMLElement;
, и, разумеется, проверяться поле className будет только у последнего элемента (все остальные просто переберутся, без проверок). Ты ж в Шарпе ставил бы {} после цикла, а не только в начале/конце процедуры?
0
19 / 19 / 4
Регистрация: 18.02.2011
Сообщений: 292
25.05.2012, 14:18  [ТС]
UI, ничего не получается.

Добавлено через 1 минуту
Посмотрите мой весь код. Суть кода - авторизация на сайте target.mail.ru ,
и добавления объявления. Я застрял на добавления объявления(заголовок).
Delphi
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
unit Unit1;
 
interface
 
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, StdCtrls, MSHTML;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    WebBrowser1: TWebBrowser;
    Button2: TButton;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
 
var
  Form1: TForm1;
  a1, a2, a3: variant;
  DocS : IHTMLElementCollection;
  Element: IHTMLElement;
  i : Integer;
 
{$R *.dfm}
 
implementation
 
procedure TForm1.Button1Click(Sender: TObject);
begin
a1:=webbrowser1.oleobject.document.getelementbyid('id_Login');
  a1.value:=Edit1.Text;
 
  a2:=webbrowser1.oleobject.document.getelementbyid('id_Password');
  a2.value:=Edit2.Text;
 
for i := 0 to WebBrowser1.OleObject.Document.all.tags('input').length - 1 do
if (WebBrowser1.OleObject.Document.all.tags('input').item(i).value='Âîéòè') then
   WebBrowser1.OleObject.Document.all.tags('input').item(i).click;
 
   WebBrowser1.Navigate('https://target.mail.ru/ads/create/');
   Sleep(1000);
 
   DocS:=(webbrowser1.Document as IHTMLDocument2).all.tags('input') as IHTMLElementCollection;
   for i:=0 to DocS.Length-1 do
     begin
   Element:=DocS.item(i,0)as IHTMLElement;
   if Element.className='input help_inp input_title' then
      Element.innerText:='text';
      end;
 
end;
 
 
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('https://target.mail.ru/login');
end;
 
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33421 / 21527 / 8240
Регистрация: 22.10.2011
Сообщений: 36,935
Записей в блоге: 12
25.05.2012, 14:32
Цитата Сообщение от PaZL Посмотреть сообщение
ничего не получается.
Не верю. В аттаче показано, что уже первый элемент возвращает правильный classname, соответственно, поле прекрасно заполняется:
Миниатюры
WebBrowser заполнить поле  
0
19 / 19 / 4
Регистрация: 18.02.2011
Сообщений: 292
25.05.2012, 14:39  [ТС]
UI, можете проверить на сайте target.mail.ru/login. У меня ничего не получается.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33421 / 21527 / 8240
Регистрация: 22.10.2011
Сообщений: 36,935
Записей в блоге: 12
25.05.2012, 14:46
Цитата Сообщение от PaZL Посмотреть сообщение
можете проверить на сайте target.mail.ru/login
А что там проверять-то? Там полей никаких нет, все поля - только на /ads/create Ты на страничку /ads/create пришел? Пришел. Вот когда она подгрузилась полностью (а не сразу после Navigate) начинай поиск поля. Обратил внимание, у меня нет вызова Navigate в обработчике нажатия на кнопку? И 1000 мс, которые ты ждешь, может оказаться недостаточно, определяй окончание загрузки в OnDocumentComplete.
0
19 / 19 / 4
Регистрация: 18.02.2011
Сообщений: 292
25.05.2012, 15:08  [ТС]
UI, спасибо, буду пытаться !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.05.2012, 15:08
Помогаю со студенческими работами здесь

Нажать на поле в webbrowser
На сайте такая защита, что нельзя нажать на кнопку войти, пока РУКАМИ не кликнешь по полю ввода логина и пароля, ...

Как заполнить textarea через webbrowser на delphi?
пробую вот так aa:=webbrowser1.oleobject.document.getelementbyid('brief'); aa.value:='текст'; вот html &lt;textarea...

Как программно заполнить строку страницы, открытую в WebBrowser
Грубо говоря, мне вон туда нужно запихнуть текст Далее нажимается собственно кнопка &quot;Войти&quot;, тут проблем нет. Пытался...

Заполнить текстовое поле webBrowser
Прошу помощи, очень срочно ! Проблема заключается в том, есть текстовое поле(webBrowser), но у него нет тегов id и name, только теги class...

Как заполнить поле в WebBrowser?
Есть WebBrowser1. В него загружена страница www.abc.ru На странице есть поле ввода WebBrowser1.Document.Forms.Item(1).All.Item(14) у...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru