下拉选择在量角器中不起作用

Drop down selection is not working in protractor

帮我解决这个问题。我必须 select 下面下拉列表中的值是我的定位器。我试过 Css,XPath 和 Repeater 到 select 的值。 CSS 并且 Xpath 正在显示 "No Element found." 当使用 Repeater 时,它没有显示任何错误,也没有 selecting 下拉列表中的值。我还需要解释什么。出现超时问题

<select class="form-control">
<option value="Select peripheral">Select peripheral</option>
<!-- ngRepeat: p in peripheral --><option data-ng-repeat="p in peripheral" value="" class="ng-binding ng-scope">CUCM_PG_1</option>
<!-- end ngRepeat: p in peripheral -->
</select>

您可能应该尝试等待 select 下拉列表中的选项加载。下面的代码应该适用于您在代码中给出的唯一 option 元素 -

var elem = $('.form-control');
var optionsToSelect = elem.element(by.repeater('p in peripheral'));
elem.click().then(function(){
    browser.waitForAngular().then(function(){
        browser.wait(protractor.ExpectedConditions.visibilityOf(optionsToSelect),10000)
        .then(function(){
            optionsToSelect.click();
        });
    });
});

如果上面的代码仍然没有点击下拉元素,那么尝试在点击选项元素后发送回车命令。方法如下 -

browser.actions().sendKeys( protractor.Key.ENTER ).perform();

同样,您可以使用元素定位器 select 任何您想要的选项。您需要做的就是用您的选项定位器替换 var optionsToSelect = elem.element(by.repeater('p in peripheral'));

如果您在下拉列表中有多个选项,并且您想要 select 所有这些都串联,您可以通过遍历元素来实现。方法如下 -

var elem = $('.form-control');
var optionsToSelect = elem.element.all(by.repeater('p in peripheral')); //get all options with the repeater
optionsToSelect.each(function(eachOption){
    eachOption.click().then(function(){
        //Perform any operation that you want after clicking each option
        browser.sleep(1000);
    });
});

希望对您有所帮助。