这是我的简单全局变量,由EX调用:this.u5boys在循环之外。
u5boys: {
xpath: "option[contains(text(), '5 Boys')]"
},
u6boys: {
xpath: "option[contains(text(), '6 Boys')]"
},
这是一个简单的循环,试图点击文字字符串" this.u5boys"什么时候跑。如何让它将this.u5boys处理到同一文件中的上述全局xpath标识符中?
ctrlClick5To6Folders(){
for(var i = 5; i < 7; i++){
boysaction = "this.u" + i + "boys";
I.click(boysaction);
}
},
如何在运行I.click()函数之前告诉它处理this.u5boys的值?
答案 0 :(得分:1)
它出现在&#34; this.u5boys&#34;
这是正常的,鉴于此:
for(var i = 5; i < 7; i++){
boysaction = "this.u" + i + "boys";
I.click(boysaction);
}
boysaction = "this.u" + i + "boys";
&#34; boysaction&#34; 在这种情况下只是一个字符串对象。
这样的事情应该有效
for(var i = 5; i < 7; i++){
boysaction = "this.u" + i + "boys";
I.click(window[boysaction].xpath);//this one
I.click(this[boysaction].xpath);//or this one
}
此处,&#34; boysaction&#34; 是string
,代表name
中可用的variable
的{{1}}上下文。
答案 1 :(得分:1)
您需要使用Object.keys来获取密钥并使用它们。
试试这个:
log()
这将在控制台中打印出xpath。如果你想调用服装功能,你可以这样做:
InterfaceOne
如果你只想要第5和第6,可以做这样的事情:
var globals = {
u5boys: {
xpath: "option[contains(text(), '5 Boys')]"
},
u6boys: {
xpath: "option[contains(text(), '6 Boys')]"
}
}
Object.keys(globals).forEach((key) => console.log(globals[key].xpath));