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

Нажать кнопку Submit в TWebBrowser если она в виде картинки

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

Нажать кнопку Submit в TWebBrowser если она в виде картинки

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

{ 
 If you have a webpage with a Form on it, but the submit - button is an image, 
 you can use this code (using a TWebBrowser) 
}

 { 
 Falls du eine Webpage mit einem Formular hast, 
 bei welchem der Submit-Knopf ein Bild ist, 
 dann kannst du diesen Code benutzen (sowie ein TWebBrowser) 
}

 uses
   MSHTML;

 var
   iDoc: IHtmlDocument2;
   i: integer;
   ov: OleVariant;
   iDisp: IDispatch;
   iColl: IHTMLElementCollection;
   InputImage: HTMLInputImage;
 begin
   WebBrowser1.ControlInterface.Document.QueryInterface(IHtmlDocument2, iDoc);
   if not Assigned(iDoc) then
   begin
     Exit;
   end;
   ov := 'INPUT';
   iDisp := iDoc.all.tags(ov);
   if Assigned(IDisp) then
   begin
     IDisp.QueryInterface(IHTMLElementCollection, iColl);
     if Assigned(iColl) then
     begin
       for i := 1 to iColl.Get_length do
       begin
         iDisp := iColl.item(pred(i), 0);
         iDisp.QueryInterface(HTMLInputImage, InputImage);
         if Assigned(InputImage) then
         begin
           if InputImage.Name = 'submit' then
           // if the name is submit / falls der name submit lautet 
          begin
             InputImage.Click;  // click it / klick es 
          end;
         end;
       end;
     end;
   end;
 end;

 // 2. 

procedure TForm1.Button1Click(Sender: TObject);
 var
   i: Word;
   Document: IHtmlDocument2;
   str: string;
 begin
   // Schleife uber alle Bilder im Webbrowser 
  for i := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do
   begin
     Document := WebBrowser1.Document as IHtmlDocument2;
     // URL auslesen 
    Str := (Document.Images.Item(i, 0) as IHTMLImgElement).Href;
     // Dateiname des Bildes uberprufen 
    if Pos('submit_icon.gif', str) <> 0 then
     begin
       ((Document.Images.Item(i, 0) as IHTMLImgElement) as IHTMLElement).Click;
     end;
   end;
 end;

Перевод контента на русский язык:

Код, который вы предоставили, это приложение Delphi, взаимодействующее с компонентом TWebBrowser для имитации клика по кнопке изображения (кнопке отправки в форме изображения) на веб-странице.

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

  1. Первый блок кода используется для поиска и клика по кнопке отправки, представленной как изображение.

    • Он запрашивает HTML-документ для всех элементов с тегом "INPUT" (включая поля ввода, чекбоксы, радио-кнопки и т.д.).
    • Затем он перебирает каждый элемент в коллекции.
    • Если элемент является типом HTMLInputImage (то есть это кнопка отправки, представленная как изображение), он проверяет, если атрибут имени этого элемента соответствует 'submit'.
    • Если это так, он имитирует клик по этой кнопке изображения.
  2. Второй блок кода используется для поиска и клика по кнопке отправки, представленной как изображение на веб-странице.

    • Он перебирает все изображения в веб-браузере.
    • Для каждого изображения он получает URL, связанный с этим изображением (свойство href).
    • Затем он проверяет, если это URL содержит конкретную строку ('submit_icon.gif').
    • Если это так, он имитирует клик по этому изображению.

Замечание: код использует синтаксис и компоненты, специфические для Delphi. Чтобы использовать эти коды в других языках программирования или фреймворках, вам нужно будет перевести их соответствующим образом.

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

  • Ошибки можно было бы обработать более конкретными сообщениями об ошибках вместо просто "Exit", если документ не был назначен.
  • Вам может понравиться проверять, является ли кнопка изображения включенной перед кликом по ней. Это может предотвратить проблемы с отключенными кнопками.
  • Для лучшей поддержки можно было бы извлечь логику поиска и клика по кнопкам изображений в отдельные функции или процедуры.
  • Если кнопка отправки имеет обработчик события OnClick, который делает что-то важное при клике, то вам может понравиться вызывать этот обработчик события вручную перед имитацией клика.

Например:

if Assigned(InputImage) then
begin
  if InputImage.Name = 'submit' then
    begin
      InputImage.Click; // кликнуть
      // Вручную вызвать обработчик события OnClick
      if Assigned(Document.Forms[0].Submit) then
        Document.Forms[0].Submit;
    end;
end;

В этом примере, когда мы имитируем клик по кнопке отправки, мы также вручную вызываем обработчик события OnClick для этой кнопки.

В статье описывается код на Delphi, который позволяет нажать кнопку submit в TWebBrowser, если она представлена в виде картинки.


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

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




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 16:46:35/0.0040249824523926/0