我正在做一个网络抓取工具,它将根据给定的开始和结束日期自动从站点中提取数据。这些日期实际上是一个选择器(但不确定它是 Js 选择器还是其他东西)。更改这些日期后,我已应用更改按钮,单击此按钮后,将加载网格。
![datepicker 控件][1] 我正在使用带有 C# 的 .net windows 应用程序。在表单中,我有网络浏览器控制。我正在通过 HtmlElement 类对象检索站点数据。有了这个,我可以使用 setattribute 选项以编程方式更改开始和结束日期文本框。但是当我在更改日期后聚焦时,它会显示当前日期(选择器中没有反映)。下面附上我的代码:
HtmlElement startdate = webBrowser1.Document.GetElementById("ctl00_txtStartDate_dateInput_text");
if (startdate != null)
{
startdate.SetAttribute("Value", DateTime.Today.AddDays(-1).ToString("M/dd/yyyy"));
}
![Selecting a date][2]
当我查看源页面时,有一个隐藏的输入标签,如果我手动更改日期,它实际上会得到反映。我什至更改了隐藏输入标签的值。但没有运气。下面附上了在源页面中找到的隐藏输入标签:
<input type="hidden" name="ctl00_txtStartDate_calendar_SD" id="ctl00_txtStartDate_calendar_SD" value="[[2013,3,19]]">
<input type="hidden" name="ctl00_txtStartDate_calendar_AD" id="ctl00_txtStartDate_calendar_AD" value="[[1980,1,1],[2099,12,30],[2013,3,1]]">
But actual date textbox control source tag is this:
<input type="text" value="3/12/2013" id="ctl00_txtStartDate_dateInput_text" name="ctl00_txtStartDate_dateInput_text" class="riTextBox riEnabled" style="width:65px;" maxlength="524288">
注意:如果我更改该选择器中的日期,即使这个实际输入值也不会反映任何变化。
请帮忙!