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