關(guān)於用Delphi 自動(dòng)提交表單 以及自動(dòng)填表 自動(dòng)點(diǎn)擊鏈接
轉(zhuǎn)載請(qǐng)保留來(lái)源:http://hi.baidu.com/szba/blog/item/9a0e5c1eed0431fc1bd57697.html
[一] 自動(dòng)提交表單
1,通過Submit提交 :<input type=submit name=sub id=sub>
有ID 或者Name 提交方法: web.oleobject.document.all.item('sub').click;
無(wú)ID 無(wú)Name 提交方法 :
for i := 0 to web.OleObject.Document.all.tags('Input').Length - 1 do begin
startag := web.oleobject.document.all.tags('input').item(i);
if startag.type =submit then
web.oleobject.document.all.tags('input').item(i).click;//(獲取這個(gè)i以后,如果網(wǎng)頁(yè)內(nèi)容是固定的就可以直接用上面一句,改I為實(shí)際的數(shù)字);
end;
2,通過表單名提交
同樣有ID或者Name 提交方法:
web.oleobject.document.all.item('表單name或者ID').submit;
或者:.web.oleobject.document.getelementbyid('對(duì)應(yīng)的ID').click;
無(wú)ID 無(wú)name 提交方法 :
web.OleObject.document.getElementsByTagName('form').item(0).submit;
或者:web.OleObject.document.frames.item(0).click;//其中itme(0)表示第一個(gè)表單
關(guān)於用Delphi 自動(dòng)提交表單 以及自動(dòng)填表 自動(dòng)點(diǎn)擊鏈接
轉(zhuǎn)載請(qǐng)保留來(lái)源:http://hi.baidu.com/szba/blog/item/9a0e5c1eed0431fc1bd57697.html
---------------------------------------------2009年3月26日------------------------------------------
[二自動(dòng)點(diǎn)擊鏈接]
1,直接用Webbrowser 打開:Webbrowser.navigae('網(wǎng)址');
2,用歷遍的方法點(diǎn)擊包含有指定字符的連接:
for i := 0 to wb.OleObject.Document.links.Length - 1 do begin
str := wb.oleobject.document.links.item(i).innertext;//表示被連接的文字
if ansicontainsstr(str,edit1.Text) then //如果包含指定字符將點(diǎn)擊
wb.OleObject.Document.links.item(i).click;
end;
3,無(wú)明連接的連接,如<SPAN>連接</SPAN>,<DIV id='test'>連接</Div>,<ul name=test>連接</ul>等等這類是事件連接用兩種方法
(1),對(duì)於有ID或者name 的就好處理:web.oleobject.document.getelementbyid('對(duì)應(yīng)的ID').click;
(2),多數(shù)時(shí)候是有ID 或者NAME的因?yàn)橐c事件關(guān)聯(lián),遇到?jīng)]有ID或NAME的時(shí)候用歷遍標(biāo)籤的方法來(lái)獲取
for i := 0 to wb.OleObject.Document.all.tags('標(biāo)籤如:DIV').Length - 1 do begin
str:= wb.oleobject.document.all.tags('標(biāo)籤).item(i).innertext;
if ansicontainsstr(str,'指定字符串') then begin
wb.oleobject.document.all.tags('標(biāo)籤').item(i).click;
exit;end;
end;
有種情況就是即使找到指定標(biāo)籤或者連接點(diǎn)擊了可是沒有反應(yīng)就用下麵兩種方法: wb.OleObject.document.all.item('標(biāo)籤ID或NAME').select;//光標(biāo)定位到標(biāo)籤上
keybd_event(13,0,0,0);//發(fā)送一次回車鍵。
那有的時(shí)候發(fā)送回車鍵也沒有用呢?那就用:
Wb.OleObject.document.all.tags('DIV').item(第N個(gè)DIV就是數(shù)字比如:10).FireEvent('onmousedown',EmptyParam);
Wb.OleObject.document.parentWindow.document.all.tags('DIV').item(10).FireEvent('onmouseup',EmptyParam);//發(fā)送一個(gè)虛擬的鼠標(biāo)按鍵動(dòng)作
到目前為此本人就只遇到這些類型的連接了。當(dāng)然FLASH里面的沒有研究過。
-------------------------------------------------2009年4月10日--------------------------------------
[三如何自動(dòng)操作帶框架的表單]
舉例 http://www./ 舉例如果自動(dòng)登陸呢?大家可以去測(cè)試GOOGLE它用的也是框架(只GOOGLE的登陸頁(yè)可以被獨(dú)立出來(lái)讓我們操作)。這個(gè)網(wǎng)址就不同它的子框架頁(yè)中用JS操作不讓其跳出框架那我們?nèi)绾沃苯硬僮魉谋韱文兀?/FONT>
一句話:
webbrowser.OleObject.document.frames.item(0).document.all.item('username').value :='你的內(nèi)容';
其中的frames.item(0)的0表示第一個(gè)子框架頁(yè),如果有更多的子框架就變成frames.item(1)以此類推。
備註:有的時(shí)候網(wǎng)頁(yè)輸入框會(huì)要求有按鍵事件才能給值。此時(shí)可以讓輸入框取得焦點(diǎn)再發(fā)送一個(gè)虛擬按鍵動(dòng)作keybd_event($49,0,0,0);
-------------------------------------------------2009年4月25日--------------------------------------
轉(zhuǎn)載請(qǐng)保留來(lái)源:http://hi.baidu.com/szba/blog/item/9a0e5c1eed0431fc1bd57697.html
關(guān)於用Delphi 自動(dòng)提交表單 以及自動(dòng)填表 自動(dòng)點(diǎn)擊鏈接