如何将getText的结果存储在变量中以供以后在Nightwatch中使用?

问题描述 投票:0回答:1

我是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测试)。

谢谢您!

javascript testing nightwatch.js
1个回答
0
投票

嗯,我无法自己进行测试,我只想猜测。

如果我不得不猜测,我猜想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
*/

© www.soinside.com 2019 - 2024. All rights reserved.