![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заполнение 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
Подойдет?