Delphi检查GetElementByID返回值的有效性


本文整理自网络,侵删。

 
Delphi 可以像JavaScript 脚本语言一样使用GetElementByID方法访问网页中指定ID的元素,一般要配合TWebBrowser组件使用。首先使用TWebBrowser浏览网页,然后访问网页的元素,例如:

procedure TForm1.Button1Click(Sender: TObject);
var
  aElement: OleVariant;
begin
  aElement := WebBrowser1.OleObject.Document.GetElementByID('btnLogin');
  aElement.value := '登录按钮';
  aElement.click;
end;

如果网页中存在ID为“btnLogin”的按钮,则以上代码没有任何问题,如果不存在,则对aElement进行的设置值和点击操作都将引发异常,所以应该对GetElementByID的返回值进行检查。但是对OleVariant类型变量的有效性进行检查却非常困难,通过使用VarType函数对aElement进行类型检查可以知道该变量是varDispatch类型的,所以可以转换成接口进行检查返回值是否有效,完整代码如下:

procedure TForm1.Button1Click(Sender: TObject);
var
  aElement: OleVariant;
begin
  aElement := WebBrowser1.OleObject.Document.GetElementByID('btnLogin');
  if IDispatch(aElement) <> nil then //对返回值进行有效性检查
  begin
    aElement.value := '登录按钮';
    aElement.click;
  end;
end;

相关阅读 >>

Delphi 使窗口透明,并透过透明的窗口操作下面的窗口

Delphi写的简单的文件的打开和关闭

Delphi json字符串转义

Delphi中indy10 的idtcpserver断开客户端连接报错问题的解决办法

Delphi从路径中分离文件名

Delphi通过url获取网页源码

Delphi 获取安卓机器码

Delphi android实例-读取设备联系人(xe8+小米2)

Delphi 用dll实现插件的简单演示

Delphi 获取当前系统语言环境(en,fr,ja等)

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...