检查Protractor + AngularJS中的单选按钮

时间:2016-10-28 10:24:57

标签: javascript angularjs protractor e2e-testing

我的html页面上有一个单选按钮,我想测试当前所选选项的值

        <div>
            <input type="radio" name="radio1" value="enabled" checked/>
            <label for="radio1">Yes</label>
        </div>
        <div>
            <input type="radio" name="radio1" value="disabled" />
            <label for="radio1">No</label>
        </div>
        <br />

我在我用来测试的页面对象上使用此代码

var radio = $("input[type='radio'][name='radio1']:checked").val();

不幸的是我得到了

  

val()未定义

如何根据单选按钮的当前状态返回“启用”或“禁用”?

1 个答案:

答案 0 :(得分:3)

val()是一个jQuery函数,除非你以这种方式设置Protractor,否则你本身无法访问它。请改用getAttribute('value'),它会返回一个承诺 - 请参阅getAttribute() reference

因此,如果您在断言中使用它,您可以让expect解决承诺本身:

var radio = $("input[type='radio']:checked")
expect(radio.getAttribute('value')).toEqual('enabled');

或者,如果您想访问该值并在其他地方使用它,请自行解决该承诺:

radio.getAttribute('value').then(function (val) {
    if(val === 'enabled') {
        // code
    }
});