Selenium IDE 扩展函数: 日期计算与表现

 用Selenium IDE做网页的功能测试经常会碰到与日期有关的验证,本人结合实际工作中遇到的应用,写了一个扩展,代码如下:


Selenium.prototype.doStoreDateByFormat = function(format,args){

// format of args: month,day,year

if(args.trim().length < 3)

throw new SeleniumError("arguments must contain ""Month"",""Date"",""Year"" variables!");

var formats = format.split(",");

var days = parseInt(formats[3]);

var sysDate = getSysDate(); //get the sysdate

var specDate = dateAfterDays(sysDate,parseFloat(days),1); //get specified date

var arrArgs = args.split(",");

var month = specDate.getMonth()+1;

var date = specDate.getDate();

var year = specDate.getFullYear();

// get Month string

switch(formats[0].toUpperCase()){

case "MM": // return 2 digits of month number, such as: 01

month = (month+"").length==1?"0"+month:month;

break;

case "MMM": //return the first 3 chars of the month word, such as: Jan

month = this.getMonthShortName(month);

break;

case "MMMM": //return the full word of the month word, such as: January

month = this.getMonthFullName(month);

break;

case "M":

default:

// return 1 digit when month is lower than 10.

// do nothing

}

//get Date string

switch(formats[1].toUpperCase()){

case "DD": //always return 2 digits of the month number, such as: 05

date = (date+"").length==1?"0"+date:date;

break;

case "D":

default:

// return 1 digit when Date is lower than 10.

// do nothing

}

//get Year string

switch(formats[2].toUpperCase()){

case "YY": // return last 2 digits of the year number, such as: 08 (2008)

year = (year+"").substr(2);

break;

case "YYYY":

default:

//return full year number, such: 2008.

}

storedVars[arrArgs[0]] = month;

storedVars[arrArgs[1]] = date;

storedVars[arrArgs[2]] = year;

}

Selenium.prototype.getMonthFullName = function(month){

var monthArr = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

if(month == null){

throw new SeleniumError("you didn't specify a Month");

}

try{

month = parseInt(month);

}catch (e){

throw new SeleniumError("""Month"" is not a Integer!");

}

return monthArr[month-1];

}

/* return the date N days(N*24 hours) before/after some day.

* args   :   num - positive/negative integer/float number,default is "1";

*            type - 0 (second) or 1 (day), default is second.

* return :   Date

*/

function dateAfterDays(date, num, type){

date = (date == null?new Date():date);

num = (num == null?1:num);

if(typeof(num)!="number")

throw new SeleniumError("dateAfterDays(date, num, type),""num"" argument must be Number type.");

if(typeof(date)!="object")

throw new SeleniumError("dateAfterDays(date, num, type),""date"" argument must be Date type.");

var iType = (type == null?0:type);

var arr = [1000,86400000];

var dd = date.valueOf();

dd += num * arr[iType];

var d=new Date(dd);

return d;

}

function getSysDate(){

return new Date();

}

  使用方法如下,详见以上代码

   

最新内容请见作者的GitHub页:http://qaseven.github.io/

   

时间: 2024-08-02 00:21:49

Selenium IDE 扩展函数: 日期计算与表现的相关文章

vc++-vc 使用阳历日期计算出农历日期

问题描述 vc 使用阳历日期计算出农历日期 根据当前获取得到的公历日期,如何得到它的阳历日期,规则或者有什么公式没? 解决方案 阴阳历算法 解决方案二: 阴阳历转换 这个算法,一般是有一个表的,需要查表没有单纯的算法可以实现转换的功能. 解决方案三: http://wenku.baidu.com/link?url=R46wuTJHzyFWnKTDwoxTyPMejR62fFmFYXicGSf62jfw-ocv7VXu10A7K6X7_1n4lTsA0-LKKvL0l7J1jTcVWyKYVYXj

ide-小白求教:selenium IDE 是否支持多标签页

问题描述 小白求教:selenium IDE 是否支持多标签页 每次播放到另一个标签页的时候就报错 然后试着去用webdriver,用eclipse写的脚本代码都对的 但运行不了 public class day1Test { private WebDriver driver; private String baseUrl; @Before public void setUp() throws Exception { System.setProperty(""webdriver.fir

蓝桥杯 算法提高 日期计算

  算法提高 日期计算  时间限制:1.0s   内存限制:256.0MB       问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰,逢400年闰的情况. 输入格式 输入只有一行 YYYY MM DD 输出格式 输出只有一行 W 数据规模和约定 1599 <= YYYY <= 2999 1 <= MM <= 12 1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期 1

PHP 日期格式化和日期计算以及获取当前周、月头尾日期

PHP 日期格式化和日期计算以及当获取前周.月头尾日期 PHP 日期格式化示例代码: /** * 格式化时间 * $type:类型 * $strDate:需要处理的时间字符串 * * 年份 Y:四位年份 y:两位年份 * 月份 m: 两位数字月份 n: 一位数字月份 M:英文月 * 日期 d:两位数字日期 j:一位数字日期 D:英文日期 * 时:H .分:i .秒:s **/ public function GetFormatDate($type = 1,$strDate=''){ $time

SQL Server日期计算(收藏)

server 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天.你们大部分人大概都知道怎样把日期进行分割(年.月.日等),然后仅仅用分割出来的年.月.日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期.         在使用本文中的例子之前,你必须注意以下的问题.大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个

一些无聊的代码之一:JAVA中的日期计算

/* * DateCalculate.java , Created on 2005-3-18 * Copyright 2005 AAA Information Technology CO.LTD. All rights reserved. *  * 作成日期: 2005-3-18 * 修改履历:  *  */package com.bjb.xyh.util; import java.text.DecimalFormat;//import java.text.ParseException;impo

SQL SERVER数据库日期计算

server|数据|数据库 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天. 你们大部分人大概都知道怎样把日期进行分割(年.月.日等),然后仅仅用分割出来的年.月.日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期. 在使用本文中的例子之前,你必须注意以下的问题.大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个

SQL Server日期计算

server 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天.你们大部分人大概都知道怎样把日期进行分割(年.月.日等),然后仅仅用分割出来的年.月.日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期. 在使用本文中的例子之前,你必须注意以下的问题.大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个

自动化测试学习(二) selenium IDE功能扩展

通过上一节的学习,相信我们已经会selnium IDE的基本使用了,为了使selenium 更强大,其实selenium 还提供了良好的扩展能力. ----//用户扩展 用户扩展就是使用javaScript文件来创建定制化特性,添加新功能,通常情况下这种扩展就是定制化命令,但扩展并不仅限于命令. 这里有一些列的扩展:http://wiki.openqa.org/display/SEL/Contributed+User-Extensions 1.下面我们利用扩展的方式,产生一个用户随机数字 为了使