<select _ngcontent-c1="" class="form-control ng-untouched ng-pristine ng-invalid" formcontrolname="Designation" required=""><option _ngcontent-c1="" value="">Select Designation</option><!----><option _ngcontent-c1="" value="CEO">CEO</option><option _ngcontent-c1="" value="GM">GM</option><option _ngcontent-c1="" value="BodyGuard">BodyGuard</option><option _ngcontent-c1="" value="Executive">Executive</option></select>
对于以上html,我正尝试使用量角器从下拉列表中选择值。 尝试过但未成功。
var EmpDesignation = element(by.cssContainingText('body.modal-open:nth-child(2) modal-container.modal.fade.show:nth-child(7) div.modal-dialog div.modal-content form.form-horizontal.ng-pristine.ng-invalid.ng-touched div.modal-body div.form-row:nth-child(2) div.col-md-10 > select.form-control.ng-pristine.ng-invalid.ng-touched:nth-child(3)', 'CEO'));
EmpDesignation.click();
错误:失败:使用定位器未找到任何元素: by.cssContainingText(“ body.modal-open:nth-child(2) modal-container.modal.fade.show:nth-child(7)div.modal-dialog div.modal-content form.form-horizontal.ng-pristine.ng-invalid.ng接触的div.modal-body div.form-row:nth-child(2)div.col-md-10> select.form-control.ng-pristine.ng-invalid.ng-touched:nth-child(3)“, “ CEO”)
有多个类,其类名为“ form-control ng-untouched ng-pristine ng-invalid”。
有人可以提出建议吗?我们可以使用formcontrolname标签吗?
答案 0 :(得分:1)
我会这样尝试
let EmpDesignation = element(by.xpath('//select[@formcontrol="Designation"]'));
EmpDesignation.sendKeys('CEO'); //Option 1
EmpDesignation.element(by.cssContainingText('option','CEO')) //Option 2
这确实假设formcontrol="Designation"
是唯一的。如果这个假设不正确,请告诉我,我会更新。
答案 1 :(得分:0)
首先,您需要单击select
元素,然后单击option
。
options
尚不可见
答案 2 :(得分:0)
尝试以下一个
const designation = element(by.css('select.form-control>option'));
测试中
designation.sendKeys('CEO');
希望它对您有帮助
答案 3 :(得分:0)
您还可以使用css选择器并使用'value'属性:
var CEO = element(by.css('[value="CEO"]'));
然后代码将如下所示:
let EmpDesignation = element(by.xpath('//select[@formcontrol="Designation"]'));
return EmpDesignation.click()
.then(function(){
return CEO.click();
});