簡體   English   中英

守夜中的全局變量。 在node.js的for循環中發出

[英]Global variable in nightwatch. Issue in for loop for node.js

我目前正在使用node + nightwatch + selenium進行自動化。 我遇到了一個場景:

我已將一個數組定義為守夜中的全局數組:

開發人員

'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;
};

當您運行for(var menu_link in data.checkforLink) ,變量'menu_link'將是一個字符串。

要使用字符串從對象獲取屬性,請使用'object [string]'語法。 試試data.mainMenuLink[menu_link];

只要data.mainMenuLink.link1存在,它就應該起作用。

我在您的問題中注意到所有屬性的值都為'link1'。 希望它們在您的代碼中是不同的屬性名稱。

我不確定您的實際問題僅與循環有關,還是無法使用“ var data = browser.globals;”創建實例。 因此您的變量數據沒有{}的值。如果是這種情況,請將Dev.js重命名為“ globals.js”,並在“ nightwatch.json”中提供其路徑作為鍵“ globals_path”的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM