Перейти к содержимому

Фотография

Определение даты tomorrow, this week, next week и later в Selenium IDE


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 mosketrem

mosketrem

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Дмитрий


Отправлено 12 января 2011 - 14:53

Есть у меня задача проверять создание записей. Эти записи создаются на определенную дату. На сайте эти записи распределяются по категориям Today, Tomorrow, This Week, Next Week, Later и Completed (просроченные). Дата задается в формате dd/mm/yyyy.
Как мне получить в Selenium IDE такие даты ? Пробовал так:

<tr>
	<td>storeEval</td>
	<td>new Date().getTime()</td>
	<td>dt</td>
</tr>
<tr>
	<td>storeEval</td>
	<td>new Date(storedVars.dt + 24*60*60*1000).format("m/dd/yy")</td>
	<td>tomorrow</td>
</tr>

и так :
<tr>
	<td>storeEval</td>
	<td>new Date()</td>
	<td>t1</td>
</tr>
<tr>
	<td>storeEval</td>
	<td>new Date(storedVars.t1.getDate() + 1).format("m/dd/yy")</td>
	<td>tomorrow</td>
</tr>

... и много других вариаций. Все равно не получается.
В обоих случаях получаю ошибку вида
[error] Threw an exception: (new Date(storedVars.dt + 86400000)).format is not a function

И это только для даты tomorrow. А как остальные даты получить я вообще не представляю !!!
  • 0

#2 adzynia

adzynia

    Постоянный участник

  • Members
  • PipPipPip
  • 210 сообщений
  • ФИО:Дзыня Андрей


Отправлено 12 января 2011 - 17:50

Попробуйте

<tr>
	<td>storeEval</td>
	<td>var d=new Date(); d.getDate()</td>
	<td>a</td>
</tr>
<tr>
	<td>echo</td>
	<td>${a}</td>
	<td></td>
</tr>

А дальше по ссылке
  • 0

#3 mosketrem

mosketrem

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Дмитрий


Отправлено 12 января 2011 - 19:39

d3unka, спасибо. Полностью моих проблем вы не решили, но кое-чем помогли. Я раньше почему-то не думал, что в первом аргументе для StoreEval можно написать несколько инструкций разделенных запятой.
Я сделал так:
<tr>
	<td>storeEval</td>
	<td>var d=new Date(); d.setDate(d.getDate()+1); (d.getMonth()+1) + "/" + d.getDate() + "/" + d.getFullYear()</td>
	<td>tomorrow</td>
</tr>
В результате получил tomorrow = "1/13/2011". Использовал эту проктологическую конструкцию
(d.getMonth()+1) + "/" + d.getDate() + "/" + d.getFullYear()
только потому, что
d.format("m/dd/yy")
у меня так и не заработал. Не знаю почему.
В общем одна проблема решена.

Какие предложения для определения даты This Week ? Для Next Week наверное можно просто 7 или 6 дней просто добавлять, а для Later - 14-15 дней.
Может можно как-то определять последний день недели, и на него назначать запись ?
  • 0

#4 mosketrem

mosketrem

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Дмитрий


Отправлено 13 января 2011 - 13:09

Сделал так:
<tr>
	<td>storeEval</td>
	<td>var thisDay = new Date(); thisDay.setDate(thisDay.getDate()+(6-thisDay.getDay())); (thisDay.getMonth()+1) + "/" + thisDay.getDate() + "/" + thisDay.getFullYear()</td>
	<td>this_week</td>
</tr>
Это для америкосовского видения недели, которая начинается с воскресенья, а заканчивается в субботу.

Какой я молодец ! Почти все решил сам. Наверное мне нужно завести себе резиновую утку, с которой можно разговаривать :)

P.S.
Кстати, если событие создается в пятницу, то оно автоматически попадает не в This Week, а в Tomorrow; а если в субботу - то в Today.
Для этого пришлось использовать вот такую конструкцию:
<tr>
	<td>storeEval</td>
	<td>var thisDay = new Date(); var myFlags = ['this week', 'this week', 'this week', 'this week', 'this week', 'tomorrow', 'today']; myFlags[thisDay.getDay()]</td>
	<td>flag_text</td>
</tr>

  • 0

#5 adzynia

adzynia

    Постоянный участник

  • Members
  • PipPipPip
  • 210 сообщений
  • ФИО:Дзыня Андрей


Отправлено 13 января 2011 - 16:17

Отлично! Поздравляю :)

Очень важно, когда сам находишь решение своей же проблемы
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных