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