gpt4 book ai didi

javascript - Nightwatch的执行方法

转载 作者:行者123 更新时间:2023-12-03 06:32:33 24 4
gpt4 key购买 nike

我正在使用 nightwatch 编写 Selenium 测试(就像你一样)。

我定义了一个回调,我想最终返回一个值(夜巡中的自定义命令)。问题是 retValue 变量永远不会更改其值,即使我在 console.log

中看到值发生变化
var _someCallBack = function() {
var retValue = false;
browser
.variousNightwatchTasks() //place holder for other things
.execute(function (d) {
//Other custom work injected into the page
return $("span.header_title").length > 0; //I need this true|false
}, [], function(r) {
retValue = r.value; //has the changes; the following outputs as expected
console.log("r = {0} {1}".format(JSON.stringify(r), retValue));
});

//Other things ...
console.log(retValue); //always false which is the problem.
return retValue; //This return needs to execute. I must return the value.
}

我确定这是由于我缺少一些 javascript 细微差别造成的,所以我如何解决这个问题以及发生了什么? (前者比后者更重要。)

更新:返回retValue是必需的。此函数用于回调自定义 nightwatch 命令,该命令在 if 语句中使用返回值。

最佳答案

execute注入(inject)的函数是异步执行的,并且在_someCallBack返回时尚未被调用。您可以提供回调函数来接收结果:

var _someCallBack = function(callback) {
browser
.variousNightwatchTasks() //place holder for other things
.execute(function (d) {
//Other custom work injected into the page
return $("span.header_title").length > 0; //I need this true|false
}, [], function(r) {
callback(r.value);
});
}

_someCallBack(function(result){
console.log(result);
});

关于javascript - Nightwatch的执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com