用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 --------------------编程问答--------------------
有想法,刚刚试过,不行。 --------------------编程问答-------------------- 是不是
<Script>datebox("Start_Date","")</Script>的问题呢? --------------------编程问答-------------------- JS的问题,网页load后js初始化日期的默认值中间变量,然后可能在submit前赋值给真正的日期input字段。而鼠标点击该区域后中间变量和真实字段同步。 类似这样的js执行机制。 那可以网页模拟点击该区域试试看。 --------------------编程问答--------------------
<input name="dt1" type="hidden">
网页模拟点击这个办法我也想过,但是有时候操作中难以实现,比如说该日期表单的坐标的上下位置改变了就不行了吧。 --------------------编程问答-------------------- 这里模拟点击是指通过DOM文档模型的操作,不是按键精灵之类的鼠标定位点击。 --------------------编程问答--------------------
能给代码我试试吗?谢谢 --------------------编程问答-------------------- 可以加我Q 1085992075 --------------------编程问答-------------------- 楼主试下在每个字段填完之后加上这样一句看看行不:
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
该对像不支持该属性。 --------------------编程问答-------------------- 试下这个:WebBrowser.Document.All("txt_year_Start_Date").focus --------------------编程问答-------------------- 这个也试过的了,不行的。
--------------------编程问答-------------------- 这个问题怎么解决呢? --------------------编程问答-------------------- 遇到类似的问题, js联动菜单 几天了, 无果 直接post 不会抓包, 分析包,,
补充:VB , 网络编程