Javascript 夜视中的全局变量。node.js的for循环中的问题

Javascript 夜视中的全局变量。node.js的for循环中的问题,javascript,node.js,for-loop,global-variables,nightwatch.js,Javascript,Node.js,For Loop,Global Variables,Nightwatch.js,我目前正在使用node+nightwatch+selenium实现自动化。 我遇到了一个场景: 我在夜视中将数组定义为全局数组: Dev.js 'checkforLink':{ link1:"Some Xpath 1", link1:"Some Xpath 2", link1:"Some Xpath 3", link1:"Some Xpath 4" }, 在自定义命令中的自定义js脚本中,我正在执行一个for循环,以从全局变量获取此链接: exports.com

我目前正在使用node+nightwatch+selenium实现自动化。 我遇到了一个场景:

我在夜视中将数组定义为全局数组:

Dev.js

'checkforLink':{
    link1:"Some Xpath 1",
    link1:"Some Xpath 2",
    link1:"Some Xpath 3",
    link1:"Some Xpath 4"
},
在自定义命令中的自定义js脚本中,我正在执行一个
for
循环,以从全局变量获取此链接:

exports.command = function(callback) {
  browser = this;

  var data = browser.globals;

  console.log("Before all loop");

  for(var menu_link in data.checkforLink) {
    linkss1 = data.checkforLink.link1; // returns `Some Xpath 1`
    reqvar = data.mainMenuLink.menu_link; // Even though menu_link have value as link1, reqvar is undefined
    browser.click('######') // Click the path
  }

  return this;
};

我不确定您的实际问题是否仅与循环相关,或者您无法使用“var data=browser.globals”创建实例,因此您的变量数据没有{}值。如果是这种情况,请将您的Dev.js重命名为“globals.js”,并在“nightwatch.json”中提供一个路径作为键“globals_path”的值。当您运行(data.checkforLink中的变量menu\u link),变量“menu\u link”将是一个字符串

要从带有字符串的对象获取属性,请使用“object[string]”语法。请尝试
data.mainMenuLink[menu\u link];

只要data.mainMenuLink.link1存在,该功能就可以工作

我注意到在你的问题中,所有属性都有值'link1'。希望它们在你的代码中是不同的属性名