[英]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.