人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

delphi中的web form提交

delphi中的web form提交

更新時間:2022-07-21 文章作者:未知 信息來源:網絡 閱讀次數:

    問題:使用delphi +twebbrowser進行頁面訪問的時候.如何最后提交填寫的表單.

    一般應該是很簡單的.

    procedure websubmit(WB: TWebBrowser; FieldName: string);
    var
      I: Integer;
      FormNr, ItemNr    : integer;
      TheForm           : Variant;
      o : Olevariant;

    begin
       //判斷是否存在form對象
      if WB.OleObject.Document.All.Tags('FORM').Length = 0 then
      begin
        ShowMessage('Error: no FORM found on page');
        Exit;
      end;

      for FormNr := 0 to WB.OleObject.Document.Forms.Length - 1 do
      begin
             //取得每一個form對象
           TheForm := WB.OleObject.Document.Forms.Item(FormNr);

           for ItemNr := 0 to TheForm.Length - 1 do
          begin
          try
              //根據form對象中的的元素名確定是否是需要提交的那個按鈕
          //form對象包括input,select button等
          //比如<input type=submit name='aaaa">
            //則name為  aaaa
               if TheForm.Item(ItemNr).Name = FieldName then
               begin
                         TheForm.Item(ItemNr).CLICK;  //模擬點擊
               exit;  
               end;
          except
              Break;
          end;
        end;
      end;
    end;

    上面代碼看起來很是正確,不過如果用戶的按鈕或者說button為:
    這個樣子的.你會發現永遠都不會給提交.
    為什么因為在msdn幫助中明確說明了上面的那個item不支持input type=image對象的.
    那如何才能提交那樣的其實很簡單改用以下代碼.可以簡化整個的提交過程

    procedure websubmit(WB: TWebBrowser; FieldName: string);
    var
      I: Integer;
      FormNr, ItemNr    : integer;
      TheForm           : Variant;
      o : Olevariant;

    begin
      if WB.OleObject.Document.All.Tags('FORM').Length = 0 then
      begin
        ShowMessage('Error: no FORM found on page');
        Exit;
      end;

    try
       //提交指定名字的標簽
       Wb.oleobject.document.all.namedItem(FieldName).click;
       except
       exit;
       end;

    end;

    如此極大簡化了提交同時也滿足了所有可能標簽的提交動作.
    一般而言使用twebbrowser來提交個人認為是一種比較好的方式.因為如果使用idhttp,可能出現用戶頁面需要通過調用script做一些處理后提交的問題.使用idhttp是無法捕獲的.
    而使用twebbrowser則完全模擬一個用戶的操作過程.可以減少對頁面的分析難度.做到準確提交.

    不過在程序提交的時候還有一個問題必須要注意.如果程序本身還沒有能運行完成也就是說twebbrowser的狀態還沒有complete的時候,千萬不要通過程序提交那樣會出現異常的.這點千萬注意呀.

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 重庆市| 天全县| 漳浦县| 大名县| 兴城市| 和政县| 崇义县| 呈贡县| 江华| 佛学| 南投市| 淳化县| 乐至县| 黄山市| 东丰县| 民丰县| 博罗县| 阿尔山市| 东光县| 彭山县| 涟水县| 永德县| 福泉市| 宁波市| 石屏县| 伽师县| 和林格尔县| 鲁山县| 河曲县| 宁陵县| 赫章县| 拉萨市| 理塘县| 汉川市| 府谷县| 曲靖市| 赣州市| 扎鲁特旗| 松原市| 蒲城县| 郑州市|