九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
delphi WebBrowser的使用方法詳解(四)
分類: Delphi Webbrowser TembeddedWB 2013-11-01 17:02 220人閱讀 評論(0) 收藏 舉報

目錄(?)[+]

webbrowser輕松實現(xiàn)自動填表

步驟如下:
 第一步:獲取網頁 調用Webbrowser 的Navigate系列函數。等待網頁裝載完成,得到document對象。 在調用 webBrowser.Document 之前,請確保 Webbrowser 網頁裝載完成,可以通過Webbrowser的DocumentCompleted事件進行監(jiān)視。 小技巧 先指定一個變量
步驟如下:

 

第一步:獲取網頁
調用Webbrowser 的Navigate系列函數。等待網頁裝載完成,得到document對象。

在調用 webBrowser.Document 之前,請確保 Webbrowser 網頁裝載完成,可以通過Webbrowser的DocumentCompleted事件進行監(jiān)視。

小技巧

先指定一個變量:
IsCompleted
在調用Webbrowser 的Navigate,Refresh系列函數之前,將IsCompleted設為false。
在DocumentCompleted事件中,如果 ReadyState 為 WebBrowserReadyState.Complete(值為4),則設IsCompleted為true.

調用webBrowser.Document之前對IsCompleted進行判斷。如果不為true,則延時循環(huán)等待,直到IsCompleted被設為true.

 

第二步:設置網頁元素數據

確保得到document對象之后,通過 GetElementById 獲取網頁元素,如:

HtmlElement user = webBrowser.Document.GetElementById("user");
HtmlElement password = webBrowser.Document.GetElementById("password");

設置網頁元素值:

user.InnerText = "myname";
password.InnerText = "123456";

小技巧
作用 SetAttribute 設置下拉框,復選框,多選框數據

下拉框:
secret.SetAttribute("value", "question1"); 
復選框
rememberme.SetAttribute("Checked", "True");
多選框
cookietime.SetAttribute("checked", "checked");

當然,在SetAttribute 之前,也可以用GetAttribute取相關的屬性先進行判斷,再根椐需要進行設置。


第三步:提交網頁數據

先取提交的按鈕對象。
HtmlElement submit = webBrowser.Document.GetElementById("submit");
 

進行提交
submit.InvokeMember("click");

就是怎么簡單。整個過程也就是 http get和post的過程。

當然也可以用低級點的WebRequest,還有更低級的socket來做,不過,現(xiàn)在的眾多頁面都有這樣,那樣的變形驗證碼,如果你和我一樣,搞不定驗證碼識別,又貪圖快點完成任務,上面的辦法絕對是又快,又好。

 

webbrowser通過屬性(tag)遍歷查找元素

function GetDocLinkByHref(doc : IHTMLDocument2;str_url:string):IHTMLAnchorElement;

var
  i               : Integer;
  label_iDispatch : iDispatch;
  label_element   : IHTMLAnchorElement;
begin
  Result := nil;

  doc  := webbrowser1.document as Ihtmldocument2;
  if not Assigned(doc) then
    Exit;
  for i:=0 to doc.links.length-1 do
  begin
    label_iDispatch   := doc.links.item(i,0);
    label_element     := doc.links.item(I,0) as IHTMLAnchorElement;
    if   (AnsiPos(str_url,(doc.links.item(I,0) as IHTMLElement).getAttribute('tag',0))>0) 
    then
    begin
      Result := label_element;
      Break;
    end;
  end;
end;

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C#中的WebBrowser控件的使用
delphi中WebBrowser的parent改變時變成空白問題的解決
如何獲取HtmlElement.InvokeMember之后的HTML數據(轉)
Delphi TWebBrowser[6] 獲取網頁所有鏈接(元素)、下拉菜單及GetElementByID返回值的有效性判定方法
delphi中WEBBrowser網頁JS函數調用delphi函數
c# GetElementById和GetElementsByTagName的寫法
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服