簡體   English   中英

如何使用Watin框架從日期字段中選擇日期

[英]How to select date from date fileds using watin framework

誰能告訴我如何使用WatiN在這些日期字段中自動選擇一個日期

http://www.meanfreepath.com/javascript_calendar/livedemo.html )我已經以這個網站為例。

我試圖選擇一個隨機日期作為

foreach (SelectList sl in lists)
{
    OptionCollection oc = sl.Options;
    temp = random.Next(oc.Count);
    oc[temp].Select();
}

它不起作用,因為日期字段不是選擇列表首先所有日期字段不是選擇列表

還有其他方法可以通過單擊日期字段並從中選擇一個隨機值來解決此難題?

您有兩個選擇:可以使用Filter方法或對所有表單元格進行for循環。 我將在下面使用“ Filter ,因為它需要較少的代碼行。

查看Calendar的代碼,您應該看到它是一個基本的HTML表,並且該單元格由CSS類很好地定義。

示例的目標

選擇當月的任意一天

偽碼

  • 轉到頁面
  • 找出當月的天數
  • 根據一個月中的天數生成一個隨機數
  • 通過過濾CSS類來選擇一天,期望的文本是隨機數

實際代碼

Settings.HighLightElement = false;   //If you don't do this, the calendar colors won't work correctly.
ie = new IE(true);

ie.GoTo("http://www.epoch-calendar.com/javascript_calendar/livedemo.html");
ie.Table("bas_cal_calendar").WaitUntilExists(5);

int totalDaysInMonth = ie.Table("bas_cal_calendar").TableCells.Filter(Find.ByClass(new Regex(@"wkday|wkend|wkday\scurdate"))).Count;

Random random = new Random();
int randomDay = random.Next(1,totalDaysInMonth + 1);

ie.Table("bas_cal_calendar").TableCell(Find.ByClass(new Regex(@"wkday|wkend|wkday\scurdate")) && Find.ByText(randomDay.ToString())).Click();

注意 :我猜當前日期是周末的CSS類可能會比較糟糕 這需要進行驗證,並根據需要更新RegExs。 注意 :單擊一天后,CSS類更改為* cell_selected *。

上面經過測試,使用WatiN 2.1和IE8效果良好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM