VB写的程序遇到了一个瓶颈,是关于自动提交表单的
hackboymzw2009/01/10软件综合 IP:浙江
程序的作用是自动完成网站的表单填写和提交
现在遇到了一个可恶的页面,没有Value属性,如何给表单的控件附值?

望各位赐教


摘取一部分HTML源码上来供大家分析。

HTML代码如下:

                    
               联系地址:
        
              
客户的详细地址         
                      
                <input name=GetAdr id="GetAdr" size=30 maxlength=50 class=button1>        
                *                                           
            


          
                      
               邮政编码:           
               <input name=Post id="[s:9]ost" size=30 maxlength=6 style="ime-mode:disabled" class=button1>          
                            
            

          


                      
               电话:
          
              
          
               <input name=LifeTel id="LifeTel" size=30 maxlength=13 style="ime-mode:disabled" class=button1>           
            

          


                      
               移动电话:           
               <input name=MTel id="MTel" size=30 maxlength=13 style="ime-mode:disabled" class=button1>          
                  *                                           
            


          
                      
               电子邮件地址:           
                        
                <INPUT name=Email id="Email" size=30 maxLength=50 class=button1>          
                                                            
            


如上所见,并没有出现Value= 这样的属性,不能通过给Value附值提交来实现了。

请问有什么简便的方法吗?听说好象是强行替换上Value属性,然后强行递交给webBrowser执行,据说能提交上去,我没试过,不知道行不行,自己也没办法实现(初学VB)。


我现在采用的自动提交代码如下:
程序自动遍历ID,然后根据条件自动定位,写入数据。

    Dim vDoc, vTag
    Dim i As Integer
    Set vDoc = XXXXXXXXXXXXXXcument
    XXXXXXXXear
    For i = 0 To XXXXXXXl.Length - 1
        If UCase(XXXXXXXl(i).TagName) = "INPUT" Then
            Set vTag = XXXXXXXl(i)
            If vTag.Type = "text" Or vTag.Type = "password" Then
                XXXXXXXXdItem XXXXXXXme
                Select Case XXXXXXXme
                    Case "myid"
                        XXXXXXXlue = XXXXXXXXst(key_2)
                        XXXXXXXXstIndex = key_2
                        key_2 = key_2 + 1
                        If XXXXXXXXst(key_2) = "" Then Beep
                    Case "pwd"
                        XXXXXXXlue = "654321"
                    Case "verifycode"
                        XXXXXXXlue = Text2.text
            End Select
            ElseIf vTag.Type = "submit" Then
                XXXXXXXick
            End If
        End If
    Next i

上面这个自动提交方法碰到我前面提到的HTML代码,就不灵了。。。
就连TYPE类都找不到一个。。。

我是这么写的:

    Dim vDoc, vTag
    Dim i As Integer
    Set vDoc = XXXXXXXXXXXXXXcument
    XXXXXXXXear
    For i = 0 To XXXXXXXl.Length - 1
        If UCase(XXXXXXXl(i).TagName) = "INPUT" Then
            Set vTag = XXXXXXXl(i)
            If vTag.Type = "text" Or vTag.Type = "radio" Or vTag.Type = "radio" Or vTag.Type = "select" Or vTag.Type = "textarea" Then
                XXXXXXXXdItem XXXXXXXme
                Select Case XXXXXXXme
                    Case "name"
                        XXXXXXXlue = Sname(i).text        '此处用的是控件数组,textbox控件,下同
                    Case "sex"
                        XXXXXXXlue = Ssex(i).text
                    Case "psid"
                        
                        XXXXXXXlue = Val(Sid(i).text + 1)
                    Case "birdy"
                        XXXXXXXlue = Val(Mid$(Sid(i).text, 6, 4))
                    Case "area"
                        XXXXXXXlue = SdqB(i).text
                    Case "getadr"
                        XXXXXXXlue = SdqC(i).text
                    Case "mtel"
                        XXXXXXXlue = Smtel(i).text
                    Case "birdm"
                        XXXXXXXlue = Val(Mid$(Sid(i).text, 10, 2)) / 1
                    Case "birdd"
                        XXXXXXXlue = Val(Mid$(Sid(i).text, 12, 2)) / 1
                    Case "state"
                        XXXXXXXlue = "浙江省"
                    Case "txtnote"
                        XXXXXXXlue = "TEST"
            End Select
            ElseIf vTag.Type = "submit" Then
                XXXXXXXick
            End If
        End If
    Next i
来自:计算机科学 / 软件综合
5
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
我说要有光
16年1个月前 IP:未同步
59977
webBrowser功能少 限制多  建议直接通过HTTP的方式提交表单
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hackboymzw作者
16年1个月前 IP:未同步
59979
如何实现呢?HTTP直接提交我还没试过
可以对没有Value属性的页面操作吗?

拜托大家了,帮我想想办法,不想就这么放弃了

在CSDN上发过帖,但是没人鸟我。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
16年1个月前 IP:未同步
60018
用费德勒抓包,然后用inet控件提交。。

当然.NET的话用webclient会爽死人的!webclient1.uploaddata
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hackboymzw作者
16年1个月前 IP:未同步
60181
93 能详细说下吗?
我QQ:175304004
因为没做过这方面的程序,况且本人VB也是初学,光搞验证码就够呛了,现在验证码问题解决了,就差这个了
同志们,发扬下雷锋精神吧
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hackboymzw作者
16年1个月前 IP:未同步
60401
突然发现这个表单页面是用Javascript写的,HTML里没有Value估计和这个有关系

<head>
<link href="../images/font1.css" rel="stylesheet" type="text/css">
</head>


<SCRIPT language=Javascript>
function IsEmpty(s)
{

if (s.length == 0)
return true;
}
function startSpace(value)
{
ch = value.substring(0, 1);
if(ch == " ")
return true;
}
function charOnly(fieldValue)
{
  var length = fieldValue.length;
  var ch = "";
  for (var i = 0; i < length; i++)
  {
    ch = fieldValue.substring(i, i + 1);
    if ( ((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && ( ch  <"0" || "9" < ch ) )
  return false;
  }
  return true;
}
</script>


<SCRIPT language=Javascript>

function ValidateFields2(form)
{


  if(IsEmpty(XXXXXXXXXXXXlue))
  {
alert("请输入你的姓名!");
XXXXXXXXXXXXcus();
return false;
  }
  if(IsEmpty(XXXXXXXXXXXXlue))
  {
alert("身份证不能为空!");
XXXXXXXXXXXXcus();
return false;
  }
  
  if(!(XXXXXXXXXXXXlue.length==15||XXXXXXXXXXXXlue.length==18))
  {
alert("身份证为15位或者为18位!");
XXXXXXXXXXXXcus();
return false;
  }
        
    if(isNaN(XXXXXXXXXXXXXlue))
  {
    alert("生日的年份必须为数字!");
XXXXXXXXXXXXXcus();
return false;
  }

  if(IsEmpty(XXXXXXXXXXXXlue))
  {
alert("请输入您所在的县市!");
XXXXXXXXXXXXcus();
return false;
  }

  if(IsEmpty(XXXXXXXXXXXXXXlue))
  {
alert("请输入您详细的通讯地址!");
XXXXXXXXXXXXXXcus();
return false;
  }
  if(IsEmpty(XXXXXXXXXXXXlue))
  {
alert("请输入手机号!");
XXXXXXXXXXXXcus();
return false;
  }
  if(isNaN(XXXXXXXXXXXXlue))
  {
    alert("手机号输入有误!");
XXXXXXXXXXXXcus();
return false;
  }
  
  if(IsEmpty(XXXXXXXXXXXXXXXlue)||XXXXXXXXXXXXXXXlue.length > 49)
  {
alert("请输入基本简介,并且长度小于50位!");
XXXXXXXXXXXXXXXcus();
return false;
  }
  
  form.submit();
  return true;
}
</script>  


  
  

    

      
  
            

        

      
      
      
您现在所在的位置 => 客户管理 => 客户登记
            
      
    
      
      
            
      

      
客户登记

      
        <FORM name='FrmNewUser' action='XXXXXXXXXXp' method='post'>
          
          
            
              
                    
                  
                    
                  
                    
                      
                                                        
                    
                    
                      
                                                        
            
姓名: 请填写真实姓名         
                <INPUT name=Name id="Name" size=12 maxLength=10 class=button1>        
                * <input type="radio" name="sex" value="0" checked> 女士 <input type="radio" name="sex" value="1">先生
身份证号码:
必须认真填写,做为考核依据
        
                <INPUT name=PSID id="[s:9]SID" size=30 maxLength=18 style="ime-mode:disabled" class=button1>        
                *
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
hackboymzw
学者 机友 笔友
文章
18
回复
186
学术分
2
2008/10/30注册,7个月12天前活动

技术宅

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}