2013-04-19 59 views
1

我正在做一個網絡抓取工具,它會根據給定的開始和結束日期從站點自動提取數據。這些日期實際上是一個選擇器(但不知道它是Js選擇器還是別的東西)。更改這些日期後,我應用更改按鈕,單擊此按鈕時,將加載網格。無法訪問日期選擇器和隱藏字段的GetElementById(.Net WebBrowser控件)

![datepicker控件] [1] 我正在使用.net windows應用程序與C#。在表單中,我有Web瀏覽器控制。我通過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"> 

注意:如果我更改該選擇器的日期即使這個實際輸入值並不反映任何變化。

請幫忙!

回答