如何使用量角器在下拉菜单中选择所有值

时间:2019-04-11 04:40:29

标签: typescript protractor

我得到了下拉列表中的值的计数,并试图一个接一个地单击每个选项并进行验证,但是我无法单击选项。

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')仍然没有用,有人可以帮忙吗

2 个答案:

答案 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();
}