量角器 - 从未知组中选择一个无线电

时间:2016-05-14 22:35:33

标签: angularjs webdriver protractor

我正在测试一个外观应用程序,其中每个页面有10个问题 - 每个问题有5个选项(单选按钮)。出于测试目的,我需要选择一些选择,它可以是第一个或最后一个 - 并不重要。我不知道单选按钮的名称,因为每个问题都是完全随机的。

我的逻辑是首先找到所有单选按钮的名称,然后从组中选择最后一个单选按钮。

    var radioNames = {};
    $$("input[type=radio]").filter(function(elem,index){
        elem.getAttribute("name").then(function(name){
            radioNames[name] = true;
        });
    }).then(function(){
        for (name in radioNames){
            $$("input[name='" + name + "']").last().click();
        }
    })

工作正常。我的问题:有没有更好的逻辑,用更少的编码来实现这个目标?

1 个答案:

答案 0 :(得分:0)

map()将是更合适的选择:

$$("input[type=radio]").map(function(elem) {
    return elem.getAttribute("name");
}).then(function(radioNames) {
    for (name in radioNames) {
        $$("input[name='" + name + "']").last().click();
    }
});