如何使用量角器逐一选择下拉列表中的所有值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用量角器逐一选择下拉列表中的所有值相关的知识,希望对你有一定的参考价值。

我得到了下拉列表中的值的计数,并试图逐个点击每个选项并验证一些但我无法点击选项。

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

答案
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

另一答案

不确定何时在DOM中生成选项。在for循环尝试

browser.driver.findElements(element(by.css('#someid option')).then(elms => {
          return elms[i].click();
}

以上是关于如何使用量角器逐一选择下拉列表中的所有值的主要内容,如果未能解决你的问题,请参考以下文章

如何选择下拉菜单中的所有选项 - Selenium Webdriver?

如何选择使用ng-repeat实现的下拉元素

在 Angular 7 中,选择下拉值 id 传递给 ngFor 列表中的所有选择下拉列表

如何在不使用提交的情况下从下拉列表中选择值

在下拉列表中选择值时,如何将 Gridview 的所有行设为可编辑模式

当某个值返回为空时,如何使用下拉列表中的选定值?