我是Nightwatch.js的新手。
我想知道如何将getText命令的结果存储到要在命令外部使用的变量中。
这是我的代码:
var endDate;
client.getText("span.date", function(result){
LOGGER(`INSIDE FXN ${result.value}`);
endDate = result.value;
});
LOGGER(`OUTSIDE FXN ${endDate}`);
结果:
*******INSIDE FXN 3/30/2018*******
*******OUTSIDE FXN UNDEFINED*******
如您所见,我正在尝试获取span.date中的文本,并使用LOGGER显示该文本(该函数在该函数内部成功运行)。一旦我们移出getText的回调函数之外,当我使用LOGGER显示它时,它将输出未定义。
将日期存储在变量中非常重要,因为我打算将其用于测试元素(用于UI Smoke测试)。
谢谢您!
嗯,我无法自己进行测试,我只想猜测。
如果我不得不猜测,我猜想getText在第二个LOGGER之后正在运行
let result;
function changeResult(){
result = 5;
}
// This is probably when your code is getting logged
console.log(result);
changeResult();
// here is when you would get result
console.log(result);
您可以通过运行LOGGER(DATE.now())进行测试;
let result;
function changeResult(){
result = 5;
console.log('inside',Date.now())
}
// This is probably when your code is getting logged
console.log('before',Date.now());
changeResult();
// here is when you would get result
console.log('after',Date.now());
/*
"before" 1590038724044
"inside" 1590038724045
"after" 1590038724045
*/