Как выбрать дату из поля даты с помощью Watin Framework - PullRequest
0 голосов
/ 28 сентября 2011

Может ли кто-нибудь сказать мне, как автоматически выбирать дату в этих полях даты, используя 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();
}

Не работает, поскольку поля даты не являются списками выбора, в первую очередь поля даты не являются списками выбора

Есть ли другой способ решить эту загадку, щелкнув по полю даты и выбрав из него случайное значение?

1 Ответ

0 голосов
/ 29 сентября 2011

У вас есть пара вариантов: вы можете использовать метод Filter или выполнить цикл for для всех ячеек таблицы. Я буду использовать Filter ниже, так как для этого требуется меньше строк кода.

Просматривая код для Календаря, вы должны увидеть, что это базовая таблица 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, когда текущей датой является выходной день, будет wkend curdate . Это должно быть проверено и RegExs обновлены по мере необходимости. Примечание : после нажатия на день класс CSS изменится на * cell_selected *.

Выше проверено и хорошо с использованием WatiN 2.1 и IE8

...