在 nightwatch js 中使用 global.js
Working with global.js in nightwatch js
我正在 nightwatch 中编写一些测试,并且有一个 globals.js 文件,它实际上是在下面导出一个 js 对象。
var self = module.exports = {
environment: undefined,
beforeEach: function (browser, done) {
browser.execute(function(data) {
return window.navigator.userAgent;
}, [], function(result) {
self.environment = result.value;
console.log("Run against: " + self.environment);
done();
});
console.log('the new env is', self.environment);
},
};
注意:console.log("Run against: " + self.environment);
打印我的 env 值,在这种情况下它不是未定义的。然而。每当我尝试从另一个 file/class 访问环境时。它 returns 默认未定义,尽管我之前更新过它。示例来自下面的测试。
module.exports = {
tags: ['assetindex'],
'visit': function(browser) {
console.log('the environment is', browser.globals.environment);
(/Chrome/.test(browser.globals.environment)) ?
browser
.page.assetindex().mobileVisit()
.end()
:
browser
.page.assetindex().desktopVisit()
.end()
}
};
browser.globals.environment
在这里总是返回 undefined,尽管我在 beforeEach 函数中更改了它。请问我如何实现这一目标?我做错了什么?
好像browser.globals
是globals.js
的翻版。我会在 beforeEach
中用 browser.globals.environment
替换 self.environment
:
module.exports = {
environment: undefined,
beforeEach: function (browser, done) {
browser.execute(function(data) {
return window.navigator.userAgent;
}, [], function(result) {
browser.globals.environment = result.value;
console.log("Run against: " + browser.globals.environment);
done();
});
}
};
我正在 nightwatch 中编写一些测试,并且有一个 globals.js 文件,它实际上是在下面导出一个 js 对象。
var self = module.exports = {
environment: undefined,
beforeEach: function (browser, done) {
browser.execute(function(data) {
return window.navigator.userAgent;
}, [], function(result) {
self.environment = result.value;
console.log("Run against: " + self.environment);
done();
});
console.log('the new env is', self.environment);
},
};
注意:console.log("Run against: " + self.environment);
打印我的 env 值,在这种情况下它不是未定义的。然而。每当我尝试从另一个 file/class 访问环境时。它 returns 默认未定义,尽管我之前更新过它。示例来自下面的测试。
module.exports = {
tags: ['assetindex'],
'visit': function(browser) {
console.log('the environment is', browser.globals.environment);
(/Chrome/.test(browser.globals.environment)) ?
browser
.page.assetindex().mobileVisit()
.end()
:
browser
.page.assetindex().desktopVisit()
.end()
}
};
browser.globals.environment
在这里总是返回 undefined,尽管我在 beforeEach 函数中更改了它。请问我如何实现这一目标?我做错了什么?
好像browser.globals
是globals.js
的翻版。我会在 beforeEach
中用 browser.globals.environment
替换 self.environment
:
module.exports = {
environment: undefined,
beforeEach: function (browser, done) {
browser.execute(function(data) {
return window.navigator.userAgent;
}, [], function(result) {
browser.globals.environment = result.value;
console.log("Run against: " + browser.globals.environment);
done();
});
}
};