Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在nightwatch js中使用global.js_Javascript_Nightwatch.js - Fatal编程技术网

Javascript 在nightwatch js中使用global.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;

我正在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(“针对:+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;}