Javascript 在nightwatch js中使用global.js
我正在nightwatch中编写一些测试,并且有一个globals.js文件,它实际上是在下面导出一个js对象Javascript 在nightwatch js中使用global.js,javascript,nightwatch.js,Javascript,Nightwatch.js,我正在nightwatch中编写一些测试,并且有一个globals.js文件,它实际上是在下面导出一个js对象 var self = module.exports = { environment: undefined, beforeEach: function (browser, done) { browser.execute(function(data) { return window.navigator.userAgent;
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(“针对:+self.environment运行”)代码>打印本例中未定义的我的环境值。然而。当我试图从另一个文件/类访问environ时。它返回默认的未定义值,尽管我以前更新过它。示例来自下面的测试
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
始终在此处返回未定义,尽管我在beforeach函数中对其进行了更改。请问我如何做到这一点?我做错了什么?看来browser.globals
是globals.js
的副本。我将在每个
之前用中的浏览器.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();
});
}
};
B有没有什么办法可以在每次
之前而不是之前将其归档。我注意到我不需要一直重复相同的测试,可以跳过一个测试。在收到不同的参数之前,我意识到浏览器不是一个。请问我以前怎么做?任何帮助都将不胜感激。我不确定你是否能在每次面试前做到这一点。您可以跳过浏览器。如果已经定义了环境
,请在之前执行。oic,您能给我举个跳过的例子吗?。我是返回null还是将browser.exec放在if块中?确定:if(browser.globals.environment){done();return;}