如何使用 i 调用 xpath 以使用 Javascript 在 for 循环中递增变量名称?
How can I call an xpath using i to increment the variable name in a for loop using Javascript?
这是我在循环外调用的简单全局变量: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 的值?
it comes out as "this.u5boys"
这很正常,鉴于此:
for(var i = 5; i < 7; i++){
boysaction = "this.u" + i + "boys";
I.click(boysaction);
}
boysaction = "this.u" + i + "boys";
"boysaction" 在此上下文中只是一个字符串对象。
像这样的东西应该可以工作
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
}
这里,"boysaction"是string
,表示variable
中可用的window
=]上下文。
您需要使用Object.keys获取密钥并使用它们。
试试这个:
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));
这将在控制台中打印出 xpath。如果你想调用一个服装函数,你可以这样做:
Object.keys(globals).forEach((key) => I.click(globals[key].xpath));
如果你只想要第 5 和第 6 个,可以这样做:
Object.keys(globals).forEach((key) => {
if(key != "u5boys" && key != "u6boys")
return;
console.log(globals[key].xpath);
})
这是我在循环外调用的简单全局变量: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 的值?
it comes out as "this.u5boys"
这很正常,鉴于此:
for(var i = 5; i < 7; i++){
boysaction = "this.u" + i + "boys";
I.click(boysaction);
}
boysaction = "this.u" + i + "boys";
"boysaction" 在此上下文中只是一个字符串对象。
像这样的东西应该可以工作
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
}
这里,"boysaction"是string
,表示variable
中可用的window
=]上下文。
您需要使用Object.keys获取密钥并使用它们。
试试这个:
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));
这将在控制台中打印出 xpath。如果你想调用一个服装函数,你可以这样做:
Object.keys(globals).forEach((key) => I.click(globals[key].xpath));
如果你只想要第 5 和第 6 个,可以这样做:
Object.keys(globals).forEach((key) => {
if(key != "u5boys" && key != "u6boys")
return;
console.log(globals[key].xpath);
})