全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3173
推到 Plurk!
推到 Facebook!

webbrowser如何模拟点击下述按钮

答題得分者是:jeff377
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-29 17:14:16 IP:61.153.xxx.xxx 未訂閱
BUTTON class=btn2 "addlog.style.display='';tx.style.display='none';ty.style.display='';" type=submit IMG src="/images/edit.ico" align=absMiddle 请大大帮忙分析
jeff377
初階會員


發表:9
回覆:60
積分:33
註冊:2004-08-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-29 20:00:48 IP:211.75.xxx.xxx 未訂閱
var
  WB: TWebBrowser
  Document: HTMLDocument;
  Element: IHTMLElement;
begin
  Document:= WB.Document as HTMLDocument;
  Element:= Document.getElementsByName('控件的Name') as IHTMLElement;
  if Element<>nil then Element.onclick;
end;  
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-30 08:32:42 IP:61.153.xxx.xxx 未訂閱
不知道为什么,我使用 代码: Element:= Document.getElementsByName('控件的Name') as IHTMLElement; 提示“interface not supported” 请问如何解决?
jeff377
初階會員


發表:9
回覆:60
積分:33
註冊:2004-08-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-30 14:44:23 IP:61.66.xxx.xxx 未訂閱
IHTMLElement定義於MSHTML_TLB.pas中,需在程式中uses usse MSHTML_TLB
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-30 15:00:21 IP:61.153.xxx.xxx 未訂閱
谢谢,关键从上述代码中无法得知其name或id,也就无法下手了?
jeff377
初階會員


發表:9
回覆:60
積分:33
註冊:2004-08-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-30 15:59:44 IP:61.56.xxx.xxx 未訂閱
上述的getElementsByName傳回應是IHTMLElementCollection(IHTMLElement的集合) 你可以使用下列幾個函數來取的HTML中的element getElementsByName(IHTMLElementCollection): 指定name的元素集合 getElementsByID(IHTMLElement): 指定id的元素 getElementsByTagName(IHTMLElementCollection): 指定tagName的元素集合 all(IHTMLElementCollection): 所有文件中元素集合 若你取得是IHTMLElementCollection,則以迴圈比對每個IHTMLElement特定property,來找到你要的element
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-30 16:28:46 IP:61.153.xxx.xxx 未訂閱
老大,还是不行,我看了html文件,发现该html文件中含有两个form。一个主form,一个子form。子form后面又有主form代码。 采用上述程序均无法涉及到子form后面的主form剩余的控件信息。 请问大大如何才能解决?
jeff377
初階會員


發表:9
回覆:60
積分:33
註冊:2004-08-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-01 00:36:04 IP:211.75.xxx.xxx 未訂閱
就算一份文件中有2個以上的Form,用getElementsByID一樣可以找到指定的控件。 我想你指的應該不是2個Form,而是2個Frame(框架)。 若是Frame的話,你要先取得所屬的Frame,然後取得此Frame中的HTMLDocument, 然後再去找此HTMLDocument中的控件。
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-01 11:10:29 IP:61.153.xxx.xxx 未訂閱
大大,我确实找到了在此Frame中的HTMLDocument,否则也不会找到该frame中的其他id。 分析发现该HTMLDocument含有多个TBODY,是否有影响。
jeff377
初階會員


發表:9
回覆:60
積分:33
註冊:2004-08-10

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-07-01 19:07:16 IP:211.75.xxx.xxx 未訂閱
你可以試著用這個[HTML文件解析程式],它會列出所有的HTML的Element及其類型,看能不能對你有幫助。    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=74270
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-07-05 09:02:55 IP:61.153.xxx.xxx 未訂閱
谢谢,非常有帮助。 我发现了这个item,其id为空,但是其outerhtml符合条件。 请问如何根据outerhtml找到该item?(好像无法使用document.all.item(name,index)来获取)
jeff377
初階會員


發表:9
回覆:60
積分:33
註冊:2004-08-10

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-07-05 10:37:20 IP:61.56.xxx.xxx 未訂閱
var WB: TWebBrowser Document: HTMLDocument; Element: IHTMLElement; Elements: IHTMLElementCollection; begin Document:= WB.Document as HTMLDocument; Elements:= Document.all as IHTMLElementCollection; for N1:= 0 to Elements.length-1 do begin Element:= Elements.item(N1,0) as IHTMLElement; //判斷指定屬性是否符合 if 判斷值=Element.屬性 then begin Result:= Element; end; end; end;
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-07-05 12:04:11 IP:61.153.xxx.xxx 未訂閱
谢谢大大,总算解决了。
系統時間:2024-07-06 7:26:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!