Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Автоматическое заполнение HTML-форм в браузере

Delphi , Интернет и Сети , Браузер

Автоматическое заполнение HTML-форм в браузере

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ To test this code put a TWebBrowser and A TButton component on the form }


 function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
  var
    i, j: Integer;
    FormItem: Variant;
  begin
    Result := False;
    //no form on document  
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
    begin
      Exit;
    end;
    //count forms on document  
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
    begin
      FormItem := WebBrowser.OleObject.Document.forms.Item(I);
      for j := 0 to FormItem.Length - 1 do
      begin
        try
          //when the fieldname is found, try to fill out  
        if FormItem.Item(j).Name = FieldName then
          begin
            FormItem.Item(j).Value := Value;
            Result := True;
          end;
        except
          Exit;
        end;
      end;
    end;
  end;


  //When the document is complete try to fill out the field homepage with the url  
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
    const pDisp: IDispatch; var URL: OleVariant);
  begin
    if FillForm(WebBrowser1, 'homepage', 'http://www.swissdelphicenter.ch') = False then
      ShowMessage('Error. Field not available or no Form found.');
 end;

 // Show the Webbrowser-Progress in Label1  
procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
  begin
    if ProgressMax = 0 then
    begin
      label1.Caption := '';
      Exit;
    end;
    try
      if (Progress <> -1) and (Progress <= ProgressMax) then
        label1.Caption := IntToStr((Progress * 100) div ProgressMax) + '% loaded...'
      else
        label1.Caption := '';
    except
      on EDivByZero do Exit;
    end;
  end;


  //For example you can load the page /en/addtip.php to the TWebBrowser  
//When the document is Complete the form where you can put your homepage  
//address is filled out  
procedure TForm1.Button1Click(Sender: TObject);
  begin
    Webbrowser1.Navigate('http://www.swissdelphicenter.ch/en/addtip.php');
    // Show the Titel of the currently active Webpage in the titlebar  
  // Den Titel der aktuellen Webseite in der Titeleiste anzeigen  
  Caption := Webbrowser1.OleObject.Document.Title;
  end;

Программное приложение на Delphi, использующее компонент TWebBrowser для загрузки HTML-страницы и автоматического заполнения формы на странице с конкретными полями и значениями.

Вот разбивка кода:

Функция FillForm Функция FillForm принимает три параметра: WebBrowser, FieldName и Value. Она пытается найти форму на HTML-документе, загруженном в веб-браузере, и затем ищет поле с указанным именем. Если найдено, она устанавливает значение этого поля.

  1. Функция сначала проверяет, есть ли какие-либо формы на документе.
  2. Если не найдены формы, функция выходит из цикла.
  3. Она проходит по каждой форме на документе.
  4. Для каждой формы она проходит по каждому элементу (полю) в форме.
  5. Если найдено поле с указанным именем, она устанавливает его значение и возвращает True.

Процедура WebBrowser1DocumentComplete Процедура вызывается, когда веб-браузер завершает загрузку документа. Она вызывает функцию FillForm для заполнения формы на странице с конкретными полями и значениями.

В этом случае она пытается заполнить поле "homepage" значением "http://www.swissdelphicenter.ch".

Процедура WebBrowser1ProgressChange Процедура обновляет метку (Label1) для отображения прогресса загрузки документа. Она учитывает текущий прогресс и максимальный прогресс значения.

Процедура Button1Click Процедура вызывается, когда кнопка на форме кликается. Она навигирует веб-браузер к конкретной URL (http://www.swissdelphicenter.ch/en/addtip.php) и обновит заголовок приложения с заголовком активной страницы.

Некоторые предложения по улучшению:

  • Используйте более описательные имена переменных вместо i, j и т.д.
  • Рассмотрите использование блока try-except вокруг кода заполнения формы для ловли потенциальных ошибок, которые могут возникнуть при заполнении формы.
  • Если вы планируете использовать этот код в нескольких местах, рассмотрите извлечение логики заполнения формы в отдельную функцию или класс.
  • Вам может потребоваться добавление дополнительных механизмов обработки ошибок и журналирования для обработки неожиданных ошибок или исключений.

В целом, код выглядит хорошо, но некоторые рефакторинг и дополнительная обработка ошибок могут сделать его более robust и maintainable.

Автоматическое заполнение HTML-форм в браузере позволяет программно заполнять поля форм на веб-страницах, используя компонент TWebBrowser и язык программирования Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:27:19/0.0058720111846924/1