Serenity量角器点击功能无法按预期工作

时间:2018-06-13 05:15:40

标签: angularjs protractor cucumber chai serenity-bdd

描述: 我正在进行时间表的自动化,其中有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中的评论”。

0 个答案:

没有答案