描述:
我正在进行时间表的自动化,其中有2个计划状态OPEN,CLOSE,当我选择CLOSE时,它会弹出一个提示关闭它的理由,在弹出窗口中有一个提交按钮,我有单击以完成任务。当我按下提交按钮时,我将“关闭”状态传递给UI中的onClick
方法,将方法作为内部文本传递给方法,以验证方法内的状态。
我正在使用Cucumber,Protractor,Serenity BDD和chai-as-beised来进行自动化。
问题: 当我将状态更改为CLOSE并输入CLOSE的原因然后我使用量角器时单击以单击提交按钮。 量角器转到并单击提交按钮,它会在选择菜单中传递所有状态以及我在弹出窗口中输入的原因。
代码: -
黄瓜特征:
Scenario Outline: Change the schedule.
When xxxxxxxxxxxxxx xxxxxxxxxxx
Then user clicks submit button <option>
Examples:
|option|
|OPEN|
|CLOSE|
Serenity Step File:
this.Then(/user clicks submit button (.*)$/,async(option:string)=>{
//browser.waitForAngular("true");
return actor.attemptsTo(Click.on(WidgetLocators.reasonSubmit));
});
UI HTML:
<button type="button" class="btn btn-warning" id="submitComment" (click)="closeCommentsPopup('yes')">Submit</button>
UI验证方法:
closeCommentsPopup(id) {
const tempSpan = document.createElement('span');
tempSpan.classList.add('class', 'modality_tooltiptext');
tempSpan.innerText = this.closeCommentsTextAreaValue;
this.currentClickedShiftStatus.appendChild(tempSpan);
if ((this.closeCommentsTextAreaValue.length > 0 && id === 'yes')) {
**console.log(this.currentClickedShiftStatus.innerText);**
if (this.currentClickedShiftStatus.innerText === widget.CLOSE ) {
const selectEle = document.getElementById('selectId');
this.postShiftStatusDetails(widget.CLOSE);
this.currentClickedShiftStatus.tmpstatus = widget.CLOSE;
document.getElementById('closeCommentPopUpDiv').className = 'hideCommentsDiv';
if (selectEle != null) {
selectEle.remove();
}
}else if (this.currentClickedShiftStatus.innerText === widget.OPEN) {
const selectEle = document.getElementById('selectId');
this.postShiftStatusDetails(widget.OPEN);
this.currentClickedShiftStatus.tmpstatus = widget.OPEN;
document.getElementById('closeCommentPopUpDiv').className = 'hideCommentsDiv';
if (selectEle != null) {
selectEle.remove();
}
}else{....}}
输出:
单击提交按钮时的预期输出:
当我选择打开 console.log(this.currentClickedShiftStatus.innerText);
时,应打印OPEN
当我点击关闭 console.log(this.currentClickedShiftStatus.innerText);
时,应打印关闭
但是当我使用量角器时,它会传递给 console.log(this.currentClickedShiftStatus.innerText);
OPENCLOSE“我放在textarea中的评论”。