我正在尝试读取我的测试用例选择的单选按钮的值,但我总是收到如下错误:
预计“开”为“M”。
我从上述错误中了解到,量角器期望值“开”而不是“M”。
我的问题很简单:我无法读取我选择的单选按钮的输入值。
几个场景以便更好地理解。
- 我的单选按钮没有选择默认值。
- 如果用户选择了一个已经存在的成员,则默认情况下会选择一个单选按钮值。
isValSelected
value 最初设置为 false,如果用户显式选择单选按钮或用户从可用名称列表中选择,则该值为 true
在过去的几天里,我一直无法解决这个问题。任何帮助,将不胜感激。我也尝试过使用承诺,但目前没有任何效果。
我的标记:
<div class="col-md-6 form-group">
<div class="radio-class">
<div class="radio-field1">
<input type="radio" [value] = "'M'" name="gender" id="radioM" class="form-control" [(ngModel)] = "radioM" [attr.disabled]="isValSelected?'':null" [checked]="isValSelected && radioM=== 'M'" />
<label for="radioM">Male</label>
</div>
<div class="radio-field2">
<input type="radio" [value] = "'F'" name="gender" id="radioF" class="form-control" [(ngModel)] = "radioF" [attr.disabled]="isValSelected?'':null" [checked]="isValSelected && radioF === 'F'" />
<label for="radioF">Female</label>
</div>
</div>
</div>
我的页面对象:
MRadioLabel() {
return element(by.css("label[for='radioM']"));
}
MRadioInput() {
return element(by.id('radioM'));
}
我的测试用例:
let newForm: myPo;
it('should read selected radio button value', () => {
expect(newForm.MRadioInput().getAttribute('checked')).toBeFalsy();
newForm.MRadioLabel().click()
expect(newForm.MRadioInput().getAttribute('checked')).toBeTruthy();
expect(newForm.MRadioInput().getAttribute('value')).toBe('M');
newForm.submitButton().click();
browser.driver.sleep(10000);
})