Javascript 断言在下拉列表中检查数组中的值
我找不到检查数组中的元素(值-字符串)是否在下拉菜单中被选中的最佳解决方案。 这是我的html的一部分(下拉列表)Javascript 断言在下拉列表中检查数组中的值,javascript,arrays,automation,protractor,automated-tests,Javascript,Arrays,Automation,Protractor,Automated Tests,我找不到检查数组中的元素(值-字符串)是否在下拉菜单中被选中的最佳解决方案。 这是我的html的一部分(下拉列表) 使用可以结合使用和CSS选择器 let selectedOptsText = element.all(by.css('.dropdown-item input:checked + label')) .getText(); // how to use selectedOptsText selectedOptsText.then(funct
使用可以结合使用和CSS选择器
let selectedOptsText = element.all(by.css('.dropdown-item input:checked + label'))
.getText();
// how to use selectedOptsText
selectedOptsText.then(function(txts){
console.log(txts) // txts has those checked text
});
使用filter
和map
的方法:let selectedOptsText = // it's a promise
// Find all check boxes
element.all(by.css('.dropdown-item input[type="checkbox"]'))
// Filter to keep ones are checked
.filter(function(checkbox){
return checkbox.isSelected();
})
// After filter, checkboxes passed down to map() are all checked
.map(function(checkbox){
// first get checkbox's parent, then get the label of same parent
return checkbox.element(by.xpath('./../label'))
.getText();
});
// how to use selectedOptsText
selectedOptsText.then(function(txts){
console.log(txts) // txts has those checked text
});
使用每个的方法:
let selectedOptsText = []; // to store checked text
let promiseA =
// Find all check boxes
element.all(by.css('.dropdown-item input[type="checkbox"]'))
// Iterate each checkbox, store its text into selectedOptsText, if it's checked
.each(function(checkbox){
checkbox.isSelected().then(function(selected){
if(selected) {
checkbox.element(by.xpath('./../label'))
.getText()
.then(function(txt){
selectedOptsText.push(txt);
});
}
})
});
// how to use selectedOptsText, it's different with above approach
promiseA.then(function() {
console.log(selectedOptsText); // selectedOptsText has those checked text
});
使用可以结合使用和CSS选择器
let selectedOptsText = element.all(by.css('.dropdown-item input:checked + label'))
.getText();
// how to use selectedOptsText
selectedOptsText.then(function(txts){
console.log(txts) // txts has those checked text
});
使用filter
和map
的方法:let selectedOptsText = // it's a promise
// Find all check boxes
element.all(by.css('.dropdown-item input[type="checkbox"]'))
// Filter to keep ones are checked
.filter(function(checkbox){
return checkbox.isSelected();
})
// After filter, checkboxes passed down to map() are all checked
.map(function(checkbox){
// first get checkbox's parent, then get the label of same parent
return checkbox.element(by.xpath('./../label'))
.getText();
});
// how to use selectedOptsText
selectedOptsText.then(function(txts){
console.log(txts) // txts has those checked text
});
使用每个的方法:
let selectedOptsText = []; // to store checked text
let promiseA =
// Find all check boxes
element.all(by.css('.dropdown-item input[type="checkbox"]'))
// Iterate each checkbox, store its text into selectedOptsText, if it's checked
.each(function(checkbox){
checkbox.isSelected().then(function(selected){
if(selected) {
checkbox.element(by.xpath('./../label'))
.getText()
.then(function(txt){
selectedOptsText.push(txt);
});
}
})
});
// how to use selectedOptsText, it's different with above approach
promiseA.then(function() {
console.log(selectedOptsText); // selectedOptsText has those checked text
});
谢谢,我将在星期二试一试。它看起来很简单,我花了一整天的时间来寻找解决方案……:)但是,你能给我举个例子,我如何使用过滤器或映射函数来实现它吗?因为我想我没有看轻他们。我非常感谢你给我举了很多例子谢谢,我将在星期二试一试。它看起来很简单,我花了一整天的时间来寻找解决方案……:)但是,你能给我举个例子,我如何使用过滤器或映射函数来实现它吗?因为我想我没有看轻他们。我非常感谢你给我举了很多例子