Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Авто-нажатие кнопок на веб-форме (TEmbeddedWB)  (Прочитано 11683 раз)
0 Пользователей и 1 Гость смотрят эту тему.
multi
Гость
« : 29-07-2008 01:53 » 

Вопрос для тех кто знаком с компонентом TEmbeddedWB...как с его помощью производить авто-нажатие определенных клавиш на веб-форме...на офф.сайте производителя ничего внятного на эту тему найти не смог...для тех кто не знаком с этим компонентом вопрос другой, какими другими средствами можно достигнуть этого авто-нажатия?  Улыбаюсь
Записан
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #1 : 29-07-2008 04:09 » 

Интерфейс IWebBrowser - у него есть методы GoBack, GoForward, GoHome и т. д. См. msdn.
Записан
multi
Гость
« Ответ #2 : 29-07-2008 13:20 » 

Ну вобще-то я имел немного другое, например есть сайт в котором есть поля для заполнения и кнопки для подтверждения ввода данных. С автозаполением всё понятно, в TEmbeddedWB это легко делается...а как сделать автоматическое нажатие кнопок подтверждения, причем не первой попавшейся, а в зависимости от указанного имени элемента в коде =)
Записан
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #3 : 29-07-2008 14:33 » 

1. Получаем интерфейс IHTMLDocument2 из IWebBrowser::Document (пример doc:=WebBrowser1.Document as IHTMLDocument2)
2. Получаем коллекцию элементов IHTMLElementCollection = IHTMLDocument2::all (allEl:=doc.all)
3. Получаем коллекцию элементов формы allElForm:IHTMLElementCollection;
allElForms:=allEl.tags('form') as IHTMLElementCollection;
4. Перечисляем все элементы на имя тега Input:
For i:=0 to allElForms.length-1 do
begin
 elItem:=allEl.item(i, i) as IHTMLElement;
 If elItem.tagname = 'input'  then
 ....
end;
5. Проверяем атрибут Type элемента Input, если он Submit или Button:
If string(elItem.getAttribute('type', 0)) = 'submit' then
6. Если все вышеуказанные условия выполняются, делаем клик: elItem.click
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 29-07-2008 14:41 » 

а можно вопрос не по теме
а как компонент TEmbeddedWB... относится к невалидному коду?
т.е. если теги не закрыты...
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
multi
Гость
« Ответ #5 : 29-07-2008 14:45 » 

zubr, спасибо большое =)
Записан
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #6 : 29-07-2008 14:48 » 

Sla, тут собственно TEmbeddedWB ни причем - там примерно те же алгоритмы используются, что я описал.
Насчет невалидного кода - не знаю, надо проверить на досуге.
Записан
Modanno
Участник

ru
Offline Offline

« Ответ #7 : 31-07-2008 19:22 » 

Плохо он к невалидному коду относится. Мозги ему сносить начинает.
Записан
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #8 : 01-08-2008 17:34 » 

Проверил. Прога, используя вышеуказанные интерфейсы работает одинаково с  2-мя вариантами валидного и не валидного кода:
1.
Код:
<td align="center"><input type="text" name="first_name" size= "30" maxlength="30" onchange="OpenEdit()"></td>
2.
Код:
<td align="center"><input type="text" name="first_name" size= "30" maxlength="30" onchange="OpenEdit()"</td>
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines