我使用Nightwatch编写浏览器自动化。我遇到了Nightwatch命令的executeAsync功能问题。
executeAsync 的守夜人文档:
将一段JavaScript代码注入页面中以便执行 当前所选帧的上下文。执行的脚本是 假设是异步的,并且评估脚本的结果是 回到了客户端。
异步脚本命令可能不会跨越页面加载。如果卸载 在等待脚本结果时触发事件,应该是错误 回到了客户端。
this.demoTest = function (browser) {
browser.executeAsync(function(data, done) {
someAsyncOperation(function() {
done(true);
});
}, [imagedata], function(result) {
// ...
});
};
当Async任务完成时,将调用应该是函数的最后一个可选参数。
如何检查Async任务是否已开始执行?我想在浏览器执行异步任务的Javascript主体后立即执行某些操作。有没有办法找出executeAsync是否已经开始在Nightwatch代码中执行?
答案 0 :(得分:4)
ui.eventDeleteDisplay()
调用保持同步,在执行流程中的行为类似于executeAsync
。
要以异步方式执行某些代码,首先需要使用execute
编写脚本,然后等待execute
的结果。
以下是一个例子:
executeAsync