четверг, 5 января 2012 г.

Selenium IDE - проверка даты и времени в разных форматах

Практически на каждом проекте есть вывод даты и необходимо проверить правильным ли числом она выводится. Для этого необходимо занести в переменную javascript:

storeEval

var d=new Date(); d.setHours(d.getHours()+6); if (d.getHours >= 24) {d.setHours(d.getHours-24)}; var minutes = d.getMinutes(); var day = d.getDay(); var def = d.getTimezoneOffset()/60; var gmt = (d.getHours() + def); d.getDate() + "/" + (d.getMonth()+1)  + "/" + d.getFullYear();
data



В данном примере высчитывается время +6 GMT и наша дата в переменной будет иметь вид  "5/1/2012".


А что, если нам нужно проверить дату в формате 05/01/2012
Приведу пример для месяца, для этого нужно немного подправить предыдущий скрипт и заменить  (d.getMonth()+1) на:

((d.getMonth()) < 10 ? "0" + (d.getMonth()+1) : d.getMonth()+1)


Тоже самое можно написать и так:  


var current_date = d.getDate();
if (current_date < 10) {    current_date = "0" + current_date; } 


Если месяц выводится в текстовом виде как January 05 , то пишем:


var month_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var d=new Date(); d.setHours(d.getHours()+6); if (d.getHours >= 24) {d.setHours(d.getHours-24)}; var current_date = d.getDate(); if (current_date < 10) {    current_date = "0" + current_date; } var current_month = d.getMonth(); var minutes = d.getMinutes(); var day = d.getDay(); month_names[current_month]     + " " + current_date;


Теперь, когда у нас готова переменная с текущим значением даты, приступаем к проверке. В моем примере нужная мне дата отображается во второй ячейке первой строки таблицы. Берем нужный нам XPATH и проверяем:

assertText

//*/table/tbody/tr/td[2]
${data}


  Для проверки времени  все аналогично. Используем getHours и getMinutes. 

1 комментарий:

javascript:void(0)