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;函数

相关文章
相关标签/搜索