如何单击Button Class WebBrowser Delphi

时间:2014-10-16 08:08:54

标签: delphi button click twebbrowser submit-button

如何在Delphi上的TWebBrowser中单击此按钮

<button class="btn btn-primary btn-block" type="button" onclick="login()">Sign in</button>

1 个答案:

答案 0 :(得分:1)

我现在没有Delphi编译器。代码是使用脑编译器编写的。但它应该可以正常工作。

使用OleObject

您可以使用oleobject界面访问DOM。

var
  Buttons: OleVariant;
  Button: OleVariant;
  I: Integer;
begin
  Buttons := WebBrowser1.OleObject.Document.getElementsByTagName("button");
  for I := 0 to Buttons.Length - 1 do
  begin
    Button := Buttons.item(I);
    if Button.innerText = 'Sign in' then
    begin
      Button.click();
      Break;
    end;
  end;
end;

运行外部脚本

另一种方法是调用execScript接口。好处是你可以从外部源加载一大块javascript代码,而不是编译整个项目。

uses
  MSHTML_TLB, SHDocVw;

procedure ExecuteScript;
var
  Script: string;
  DocPtr: IHTMLDocument2;
  WinPtr: IHTMLWindow3;
begin
  Script := 'your_javascript_code'; // Alternatively read from file

  if Supports(WebBrowser1.Document, IHTMLDocument2, DocPtr) and
     Supports(DocPtr.parentWindow, IHTMLWindow3, WinPtr) then
    WinPtr.execScript(Script, 'javascript');
end;