当前位置:编程学习 > VB >>

用webbrowser写自动填表遇到问题

<tr>
    <td height="22"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="16%" height="22"><input name="checkbox" type="checkbox"  onClick="changeDT()" value="1" checked>
          <span class="menu_normal">长期票价</span></td>
        <td width="11%" align="right" valign="middle"><span class="menu_normal">开始日期:</span></td>
        <td width="21%"><div id="d_StartDate" style="visibility:hidden">
            <Script>datebox("Start_Date","")</Script>
<input name="dt1" type="hidden">
        </div></td>
        <td width="10%" align="right" valign="middle"><span class="menu_normal">结束日期:</span></td>
        <td width="42%"><div id="d_EndDate" style="visibility:hidden">
<Script>datebox("End_Date","")</Script>
<input name="dt2" type="hidden">
        </div></td>
      </tr>


以上为网页内容。
现在想自动填写开始日期和结束日期。跟据GreenBrowser浏览器的自动填表单找到了名称,分别为:txt_year_Start_Date、txt_month_Start_Date、txt_day_Start_Date,txt_year_End_Date、txt_month_End_Date、txt_day_End_Date。
然后:
WebBrowser.Document.All("txt_year_Start_Date").Value = “2011”
WebBrowser.Document.All("txt_month_Start_Date").Value = “09”
WebBrowser.Document.All("txt_day_Start_Date").Value = “01”
WebBrowser.Document.All("txt_year_End_Date").Value = “2011”
WebBrowser.Document.All("txt_month_End_Date").Value = “09”
WebBrowser.Document.All("txt_day_End_Date").Value =“11”

这样可以填到表,表单数据显示也是自已定义的,但是提交表单时,就不能提交自已定义的日期,开始和结束日是期都是默认的当前日期。不知是什么原因。但后来发觉,在填表后,用鼠标点击一下这两个日期的表单,这下再提交就可以提交到自已定义的日期了。现在求个明白和解决办法。能让我提交到自定义的日期。 --------------------编程问答-------------------- 不准笑:提供个思路试试,行得通行不通就不知道了,因为我是菜鸟:.Value = “2011” & VbCrlf --------------------编程问答--------------------
引用 1 楼 yiguangqiang88 的回复:
不准笑:提供个思路试试,行得通行不通就不知道了,因为我是菜鸟:.Value = “2011” & VbCrlf


有想法,刚刚试过,不行。 --------------------编程问答-------------------- 是不是
<Script>datebox("Start_Date","")</Script>
<input name="dt1" type="hidden">
的问题呢? --------------------编程问答-------------------- JS的问题,网页load后js初始化日期的默认值中间变量,然后可能在submit前赋值给真正的日期input字段。而鼠标点击该区域后中间变量和真实字段同步。 类似这样的js执行机制。 那可以网页模拟点击该区域试试看。 --------------------编程问答--------------------
引用 4 楼 guitarer105 的回复:
JS的问题,网页load后js初始化日期的默认值中间变量,然后可能在submit前赋值给真正的日期input字段。而鼠标点击该区域后中间变量和真实字段同步。 类似这样的js执行机制。 那可以网页模拟点击该区域试试看。


网页模拟点击这个办法我也想过,但是有时候操作中难以实现,比如说该日期表单的坐标的上下位置改变了就不行了吧。 --------------------编程问答-------------------- 这里模拟点击是指通过DOM文档模型的操作,不是按键精灵之类的鼠标定位点击。 --------------------编程问答--------------------
引用 6 楼 guitarer105 的回复:
这里模拟点击是指通过DOM文档模型的操作,不是按键精灵之类的鼠标定位点击。


能给代码我试试吗?谢谢 --------------------编程问答-------------------- 可以加我Q 1085992075 --------------------编程问答-------------------- 楼主试下在每个字段填完之后加上这样一句看看行不:
Call WebBrowser.Document.All("txt_day_End_Date").fireevent("onchange") --------------------编程问答-------------------- 发网页上来 --------------------编程问答--------------------
引用 9 楼 jiaruseng 的回复:
楼主试下在每个字段填完之后加上这样一句看看行不:
Call WebBrowser.Document.All("txt_day_End_Date").fireevent("onchange")


试过不行哦。 --------------------编程问答--------------------
WebBrowser.Document.All("txt_year_Start_Date").Value = “2011”
WebBrowser.Document.All("txt_year_Start_Date").onClick
WebBrowser.Document.All("txt_month_Start_Date").Value = “09”
WebBrowser.Document.All("txt_month_Start_Date").onClick
WebBrowser.Document.All("txt_day_Start_Date").Value = “01”
WebBrowser.Document.All("txt_day_Start_Date").onClick
WebBrowser.Document.All("txt_year_End_Date").Value = “2011”
WebBrowser.Document.All("txt_year_End_Date").onClick
WebBrowser.Document.All("txt_month_End_Date").Value = “09”
WebBrowser.Document.All("txt_month_End_Date").onClick
WebBrowser.Document.All("txt_day_End_Date").Value =“11”
WebBrowser.Document.All("txt_day_End_Date").onClick
--------------------编程问答--------------------
引用 12 楼 sysdzw 的回复:
VB code
WebBrowser.Document.All("txt_year_Start_Date").Value = “2011”
WebBrowser.Document.All("txt_year_Start_Date").onClick
WebBrowser.Document.All("txt_month_Start_Date").Value = “09”
WebBrowser……


该对像不支持该属性。 --------------------编程问答-------------------- 试下这个:WebBrowser.Document.All("txt_year_Start_Date").focus --------------------编程问答-------------------- 这个也试过的了,不行的。
引用 14 楼 zydscaline 的回复:
试下这个:WebBrowser.Document.All("txt_year_Start_Date").focus
--------------------编程问答-------------------- 这个问题怎么解决呢? --------------------编程问答-------------------- 遇到类似的问题,   js联动菜单   几天了,  无果   直接post   不会抓包, 分析包,,
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,