分享

VB实现自动填表

 悟静 2008-08-30
VB实现自动填表
2008年02月15日 星期五 上午 09:45

转:   
    
   怎么编程把用户名,密码提交到网页上的登录页?       
   首先在程序中加入Webbrowser控件并加入引用      Microsoft      HTML      Object      Library。       
   假设你的HTML页面表单代码如下:       
   <form      method="POST"      action="http://chen/dll/chat/chatmain.exe/RegUser">       
         <p>请填写下面表单注册(*项为必添项)</p>       
         <p>*姓名<input      type="text"      name="Name"      size="20"></p>       
         <p>*昵称<input      type="text"      name="NickName"      size="20"></p>       
         <p>电子邮件<input      type="text"      name="EMail"      size="20"></p>       
         <p>*密码<input      type="text"      name="Password"      size="20"></p>       
         <p><input      type="submit"      value="提交"      name="B1"><input      type="reset"      value="全部重写"      name="B2"></p>       
   </form>       
   注意其中元素的type、Name、value属性。然后VB中的代码如下:       
   Private      Sub      Command1_Click()       
                 WebBrowser1.Navigate      "http://chen/chat/newuser.htm"       
   End      Sub       
      
   Private      Sub      WebBrowser1_DocumentComplete(ByVal      pDisp      As      Object,      URL      As      Variant)       
                 Dim      vDoc,      vTag       
                 Dim      i      As      Integer       
                              
                 Set      vDoc      =      WebBrowser1.Document       
                 List1.Clear       
                 For      i      =      0      To      vDoc.All.length      -      1       
                                 If      UCase(vDoc.All(i).tagName)      =      "INPUT"      Then       
                                                 Set      vTag      =      vDoc.All(i)       
                                                 If      vTag.Type      =      "text"      Or      vTag.Type      =      "password"      Then       
                                                                 List1.AddItem      vTag.Name       
                                                                 Select      Case      vTag.Name       
                                                                                 Case      "Name"       
                                                                                                 vTag.Value      =      "IMGod"       
                                                                                 Case      "NickName"       
                                                                                                 vTag.Value      =      "IMGod"       
                                                                                 Case      "Password"       
                                                                                                 vTag.Value      =      "IMGodpass"       
                                                                                 Case      "EMail"       
                                                                                                 vTag.Value      =      "IMGod@paradise.com"       
                                                                 End      Select       
                                                 ElseIf      vTag.Type      =      "submit"      Then       
                                                                 vTag.Click       
                                                 End      If       
                                 End      If       
                 Next      i       
   End      Sub       
   点击Command1就可以自动填表并提交了。

 

for    i=0    to    webbrowser1.document.frames.length   
           '操作webBrowser1.document.frames(i).document   
   next   
    
   操作这个webBrowser1.document.frames(i).document操作WebBrowser1.Document完全一样,   
    
   webbrowser1.document.frames.length为本页内框架数量   
    
    
   PS:本功能仅限填写非跨域网页,对于跨域框架网页没找到什么好办法,我只会一个比较笨的办法。

 

webBrowser1.document.frames(2).frames(1).document可以定位到桢2的Document里面去。   
    
   无论多少层、多少桢,理论上都可以这样定位的---跨区域除外,不过一般跨区域的不多。   
    
   ==================   
   网页=(帧1+帧2+帧3+帧4)   
   变成了   
   网页=[帧1+帧2+帧3(帧1+帧2)+帧4],即帧内又套用帧了。我要填写的部分在“帧3(帧1+帧2)”的帧2里。   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约