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

Как нажать кнопку в TWebBrowser, когда в окне есть несколько кнопок

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

Как нажать кнопку в TWebBrowser, когда в окне есть несколько кнопок

Автор: http://www.swissdelphicenter.ch

// If there is only one button, you can do something like:

WebBrowser1.OleObject.Document.forms.item(0).elements.item(0).click;

// This will do a click on the first element of the first <FORM>, where an
// element is either <INPUT>, <SELECT> or <TEXTAREA>.

// If there is more than one button, you can do something like:

procedure TForm1.Button1Click(Sender: TObject);
var
  ovElements: OleVariant;
  i: Integer;
begin
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i := 0 to (ovElements.Length - 1) do
    if (ovElements.item(i).tagName = 'INPUT') and
      (ovElements.item(i).type = 'SUBMIT') and
      (ovElements.item(i).Value = 'Recent Charges') then
      ovElements.item(i).Click;
end;

Бессконечная погоня за кликом на конкретную кнопку в компоненте TWebBrowser!

В этом случае автор уже предоставил некоторые полезные код-сниппеты, которые могут помочь вам достичь вашей цели.

Для краткого обзора:

  1. Если есть только одна кнопка, вы можете использовать следующий код:
WebBrowser1.OleObject.Document.Forms.Item(0).Elements.Item(0).Click;

Это кликнет на первый элемент первого <FORM>, который должен быть кнопкой.

  1. Если есть несколько кнопок, вам нужно будет итерировать по элементам и проверять их свойства (например, tagName, type, Value) для идентификации конкретной кнопки, которую вы хотите кликнуть.

Вот пример, как это можно сделать:

procedure TForm1.Button1Click(Sender: TObject);
var
  ovElements: OleVariant;
  i: Integer;
begin
  ovElements := WebBrowser1.OleObject.Document.Forms.Item(0).Elements;
  for i := 0 to (ovElements.Length - 1) do
    if (ovElements.Item(i).tagName = 'INPUT') and
       (ovElements.Item(i).type = 'SUBMIT') and
       (ovElements.Item(i).Value = 'Recent Charges') then
      ovElements.Item(i).Click;
end;

В этом примере код итерирует по всем элементам первого форм (Forms.Item(0).Elements), проверяет, является ли каждый элемент <INPUT> типа с атрибутом type, равным 'SUBMIT', и также совпадает ли значение кнопки. Если он находит соответствие, то кликнет на эту кнопку.

Обратите внимание, что вы можете модифицировать условия в теле if для соответствия вашим конкретным требованиям (например, проверка текста кнопки или имени класса).

Помните всегда обращаться к объекту WebBrowser1.OleObject.Document.Forms.Item(0).Elements с осторожностью, потому что он может бросить исключение, если веб-страница не имеет формы или если нет элемента, соответствующего вашим условиям.

В TWebBrowser кнопку можно нажать, используя свойство OleObject.Document.forms.item(0).elements.item(номер элемента), если в окне есть несколько кнопок.


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

Получайте свежие новости и обновления по 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 15:05:05/0.0038001537322998/0