如何在 Nightwatch js 中将变量值从一个函数传递到另一个函数

How to pass variable value from one function to another in Nightwatch js

我正在使用 Nightwatch.js 测试自动化框架。

在我的代码中我得到了值,但我无法将这个记录的值传递给另一个函数。这是代码:

CreateLife: function (browser) {

    browser.getValue('#LifeID', function (r) {
        a = r.value;

        browser.execute(function () {
            LifeTemplatesManager.loadAddOnlineItem(a);  //doesn't work/The value of 'a' is not being passed.
        });
        console.log("ID of newly created Life", a);
    }
}

每当创建新生命时,都会为其分配一个新 ID。 我能够获取此 ID 并将其存储在 'a' 中并在控制台中显示。 我的问题是如何将 'a' 的值传递给函数 'LifeTemplatesManager.loadAddOnlineItem'

帮助将不胜感激。我是 JS 的初学者。

谢谢。

browser.execute用于将JavaScript的片段注入页面(浏览器环境内)执行,变量a不可访问那种环境。

为了在此浏览器环境中使用 a,您可以执行以下操作:-

  browser.execute(function (a) {
        LifeTemplatesManager.loadAddOnlineItem(a);
    },[a]);

请参考 this link 来自 nightwatch 的文档。