量角器测试是按钮单击垫对话框

时间:2018-10-21 02:09:07

标签: angular protractor angular-material2 angular-e2e

我有一个6号角材料对话框,用于删除实体(员工)。我想设置量角器步骤以单击对话框的“是”按钮以调用删除。现在,我有一个执行此操作的页面对象函数:

deleteYesButton = () => element(by.id('deleteYes'));

在我的e2e文件中,这是异步测试的步骤:

await page.deleteYesButton.click();

出现对话框,但是单击仅关闭对话框而不执行删除。如果我手动使用该应用程序,请按“是”按钮,则一切正常。

对话框的标记是这样的:

模板:

<h2 mat-dialog-title>{{modalTitle}}</h2>
<mat-dialog-content id="mat-dialog-content">Do you wish to delete this {{entityname}}?</mat-dialog-content>
<mat-dialog-actions>
    <button mat-button mat-dialog-close id="deleteNo">No</button>
    <!-- The mat-dialog-close directive optionally accepts a value as a result for the dialog. -->
    <button mat-button [mat-dialog-close]="true" id="deleteYes">Yes</button>
</mat-dialog-actions>

感觉是时间问题还是需要调用其他内容?任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

所以我更改了代码,因此页面功能按照demouser123的建议是异步的。不得不为此修改e2e代码:

const delBtn = await page.deleteYesButton();
await delBtn.click();

但经历了与原始结果相同的结果。我还检查以确保没有重复,如Oleski所问。起作用的是在原始代码之后添加了browser.pause。因此,这现在可行:

await page.deleteYesButton().click();
browser.pause(5000);  // adding this allowed the delete to go through???