Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заполнение WEB форм [D6, Win95/98, Win2k, WinXP]


Serge ©   (2004-06-21 10:36:00) 

Привет всем. Мастера подскажите плиз идею для создания алгоритма по сабжу. На данный момент я заполняю формы находя элементы INPUT по их именам но это работает в 35-45% из форм бо имена эти разнятся от форме к форме например: FirstName, NameFirst, FName, reqName, Name, First_Name etc...
Я конечно поставил условие на поиск слов Firstб FName ... в имени INPUT-а но оно не всех именах есть. Такая-же ситуация и для всех остальных полей - телефон, адрес етц.
Была идея искать текст "First" во всех окружающих ячейках INPUT-а.
Если кто делал что нибудь аналогичное или может что-то посоветовать, поможите плз.
Заранее спасибо.
PS Я использую объекты типа: IHTMLElement, IHTMLInputElement ... заполняя формы в активном окне IExplorer-a.


Serge   (2004-06-25 15:31:00) [1]

Да-а-а  - глухо и с ответами и у меня в голове :(


Serge   (2004-06-22 09:46:00) [2]

Sorry что вчера не ответил. Идею я понял. А интересно как реализован алгоритм в iNetFormFiller, RoboForm - там вроде нет нужды предварительно настраивать программу под определенную форму. Где-то всколзь прочитал про использование fuzzy logic в данной ситуации но что и как конкретно - нивиха :(
Да-а-а-а-а "Ну погоди !" (с)


SergP   (2004-06-22 03:55:00) [3]

Кстати так писать не очень хорошо еще и потому на разных формах INPUTы c одинаковым именем могут обозначать совсем разное.

Вобщем нечто очень "вумное" здесь навряд ли напишешь.

Я когда-то делал так:
Настройки всех форм хранятся в каком-то файле. Но неизвестную форму перед использованием нужно настроить, т.е. данные о ней сохранить в этот файл.
Настройку я делал так: Юзер в неизвестной форме должен в INPUT'ах и TEXTAREA'х понаписывать имена данных (такие чтобы были одинаковые для всех форм), например
в формах имена инпутов могут быть такими '_fname', 'fname', 'f_name', 'first_name', 'first', 'fn', 'reqName', а мы пишем в этом поле всегда например fname.
Потом жмем кнопку и в настройки добавляется УРЛ формы и соответствие имен инпутов именам нашах данных.
Неудобство заключается в том что если "напоролся" на неизвестную нашему автозаполнятору WEB-форм форму, то ее нужно "настроить" прежде чем использовать.


Serge   (2004-06-21 16:06:00) [4]

... На данный момент я заполняю формы находя элементы INPUT по их именам но это работает в 35-45% из форм бо имена эти разнятся от форме к форме например: FirstName, NameFirst, FName, reqName, Name, First_Name etc...

а вот типа того я пишу у себя в проге

     If CheckInStr(InputElement.Name, ['name', 'fn', 'reqName']) Then
     Begin

       If CheckInStr(InputElement.Name, ['_fname', 'fname', 'f_name', 'first_name', 'first', 'fn', 'reqName']) Then
         InputElement.Value := PersonInfo.FirstName;

       If CheckInStr(InputElement.Name, ['_lname', 'lname', 'l_name', 'last_name', 'last', 'ln']) Then
         InputElement.Value := PersonInfo.LastName;

       If {AnsiMatchText} CheckInStr(InputElement.Name, ['_mname', 'mname', 'm_name', 'middle_name', 'middlename', 'midname', 'mid_name', 'mn']) Then
         InputElement.Value := '';


но если писать таки макаром то это придется открывать десятки форм и смотреть в сурсах имена инпутов а потом прописывать их в программе - це не дило !!!


Rouse_   (2004-06-21 15:59:00) [5]

Ну так там наверное должно быть что-то типа ovElements.item(i).nameвот его и проверяй, к примеру если он = password то туда сам понимаешь что вбивать нужно.

ЗЫ: Почему наверное, да потому что я сам не проверял :)


serge   (2004-06-21 15:38:00) [6]

Ау-у-у-у народ!
Ответьте плз кто знает, я же не прошу "дайте мне кусок кода", просто подкинте идейку кто знает а ?


serge   (2004-06-21 10:52:00) [7]

> Rouse_ ©   (21.06.04 10:39) [1]
:)
Именно с этого примера я и начал делать свою программу, но это просто заполниловка всех INPUT-ов без учета их имени, я же пытаюсь реализовать "вумный" форм-филлер (хотя их полным полно по инету, у меня данные для заполнения генерируются алеаторно самой программой), и меня интересует алгоритм для "вумного" запонения.
Все равно спасибо за ответ.


Rouse_   (2004-06-21 10:39:00) [8]

http://www.swissdelphicenter.ch/en/showcode.php?id=1607

Подойдет?


Наверх

Титульная страница Поиск, карта сайта Написать письмо