如何使用量角器更改计算机设备的日期和时间

时间:2015-01-07 03:54:24

标签: angularjs google-chrome selenium-webdriver protractor end-to-end

我需要在6个月后测试公告是否过期。目前我正在成功测试该公告是否正确。

6个月后,必须从特定标签中删除。问题是:如何使用量角器模拟未来6个月的系统时间?

3 个答案:

答案 0 :(得分:2)

以不同的方式思考。

模拟您的应用发送的包含通知的HTTP响应,并使用protractor-http-mock库设置所需的日期。换句话说,让前端认为有一个过期的公告。


替代选项包括在Sinon.jsTimeShift.js的帮助下模拟时间,但是,就个人而言,我认为涉及这些工具会过度复杂化。无论如何,请参阅:

答案 1 :(得分:0)

如果你确实有合法的需要在使用量角器进行测试时操纵浏览器的日期时间,我在这里写了一篇文章:How to change the browser date in protractor

我同意你在使用这种方法之前应该三思而后行,因为模拟回应会得到你想要的大部分时间

答案 2 :(得分:0)

我们可以在节点窗口的帮助下实现这一目标。 首先使用命令npm i node-windows安装node-windows。

代码:

   const win = require('node-windows')
   const sys = require('util')
    let dateTime    = new Date("10-10-2007) //Convert string or number to date
    let day     = dateTime.getDate() 
    let month   = dateTime.getUTCMonth() + 1 
    let year    = dateTime.getFullYear() 
    let updateD = `${month}-${day}-${year}` //Format the string correctly according to thesystme format
    console.log(updateD)
    //Add a callback function (this can be somewhere else)
    function execCallback(error, stdout, stderr) { 
         if (error) {
             console.log(error)
         } else {
             console.log(stdout) 
         }
    }
    console.log(" execute in command prompt now")

    var exec = win.elevate(`cmd /c date ${updateD}`,undefined, execCallback);

    console.log(" execution completed ")