我得到了下拉列表中的值的计数,并试图一个接一个地单击每个选项并进行验证,但是我无法单击选项。
let button = $('[href* ='something']');
let dropdown = element(by.id('someid'));
let options = dropdown.all(by.tagname('option'));
button.click();
options.then(function (items) {
console.log(items.length);
for (let i = 0; i < items.length; i++) {
items[i].gettext().then(function (text: any) {
items[i].click();
});
}
});
它显示出我的错误,因为gettext()不是函数,我尝试了getattribute('value')仍然没有用,有人可以帮忙吗
答案 0 :(得分:2)
let button = $('[href* ='something']');
let dropdown = element(by.id('someid'));
let options = dropdown.all(by.tagname('option'));
button.click();
for (let i = 0; i < options.count(); i++) {
options.get(i).getText().then(function (text: any) {
options.get(i).click();
});
}
希望它对您有帮助
由于items
是元素数组,因此必须使用get(//element position in the array)
来访问数组中的特定元素。
推荐https://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.get
答案 1 :(得分:0)
不确定该选项何时在DOM中生成。 在for循环中尝试
browser.driver.findElements(element(by.css('#someid option')).then(elms => {
return elms[i].click();
}