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

时间:2015-10-01 06:13:21

标签: javascript angularjs selenium automation protractor

帮我解决这个问题。我必须从下面的下拉列表中选择值是我的定位器。我已经尝试过Css,XPath和Repeater来选择值。 CSS和Xpath显示“找不到元素”。使用Repeater时,它不会显示任何错误,也不会在下拉列表中选择值。还有什么我需要解释的。超时问题正在发生

flatMap

1 个答案:

答案 0 :(得分:1)

您可能应该尝试等待选项下拉列表中的加载选项。下面的代码应该适用于您在代码中提供的唯一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();
        });
    });
});

如果上面的代码仍未单击下拉元素,则在单击options元素后尝试发送enter命令。这是如何 -

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

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

如果您在下拉列表中有多个选项,并且如果要在系列中选择所有选项,则可以通过迭代元素来完成。这是如何 -

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);
    });
});

希望它有所帮助。