我在selenium测试中有以下功能,并且setTimeout功能总是比它应该快25%。在这种情况下,要等待20秒,并在15秒后完成功能。
test.describe('basic login test',function(){
this.timeout(timeout);
// variables
test.before(...);
test.it.only('Test', function(done){
testLoginPage.load().then(...)
.then(...).then(...)
.then(...).then(...)
.then(function(){
var first = "1st: " + new Date().getTime();
console.log(first);
setTimeout(function(){
driver.getTitle().then(function(title){
assert.equal(title, 'Tittle', 'Error.');
});
console.log(first);
console.log("2nd: " + new Date().getTime());
done();
}, 20000);
}).then(...)
});
test.after();
});
输出:
1st: 1457706590459
1st: 1457706590459
2nd: 1457706605462
答案 0 :(得分:5)
您正在使用的代码或库有一个重写的自定义setTimeout
函数,并且它用较短的毫秒调用实际的setTimeout
函数。
您正在使用JavaScript
运行时(非常旧),非常非常关键问题。
其他一些function
正在两者之间打印(虽然看起来不像你的代码)