在子 .then 中访问父 .then 的变量,嵌套的承诺,量角器
Accesing variable of parent .then in child .then , nested promises, protractor
如何从子 .then
内部访问变量,该变量在父 .then
内部定义
您可能已经猜到了,我是 javascript 的新手。我只知道同步思维
我现在需要一个快速的解决方案。我读过嵌套的厄运金字塔和链式承诺,但无法理解它。如果你现在能给我一个工作代码,我将不胜感激,这样我就可以访问子 .then
中的 items[i]
变量
var options = element.all(by.xpath("//....."));
options.then(function(items){
for(var i=0; i<items.length;i++){
items[i].getAttribute("disabled").then(function(attr){
if(attr){ // do something based on attr value
var option = items[i];
// unable to access items => option is undefined
console.log(option);
}
});
}
});
一次获取所有元素的属性,可以使用
var disabledArray = element.all(by.xpath("some_xpath")).getAttribute("disabled");
disabledArray.then(function(disabledValues){
console.log(disabledValues); // prints the array of attribute values [true, true, false, ...etc]
});
要根据某些条件过滤元素列表,您可以使用
var disabledElements = element.all(by.xpath("some_xpath")).filter(function(ele) {
return ele.getAttribute("disabled").then(function(isDisabled){
return isDisabled === true;
});
});
如何从子 .then
内部访问变量,该变量在父 .then
您可能已经猜到了,我是 javascript 的新手。我只知道同步思维
我现在需要一个快速的解决方案。我读过嵌套的厄运金字塔和链式承诺,但无法理解它。如果你现在能给我一个工作代码,我将不胜感激,这样我就可以访问子 .then
items[i]
变量
var options = element.all(by.xpath("//....."));
options.then(function(items){
for(var i=0; i<items.length;i++){
items[i].getAttribute("disabled").then(function(attr){
if(attr){ // do something based on attr value
var option = items[i];
// unable to access items => option is undefined
console.log(option);
}
});
}
});
一次获取所有元素的属性,可以使用
var disabledArray = element.all(by.xpath("some_xpath")).getAttribute("disabled");
disabledArray.then(function(disabledValues){
console.log(disabledValues); // prints the array of attribute values [true, true, false, ...etc]
});
要根据某些条件过滤元素列表,您可以使用
var disabledElements = element.all(by.xpath("some_xpath")).filter(function(ele) {
return ele.getAttribute("disabled").then(function(isDisabled){
return isDisabled === true;
});
});