0

我有一个用于删除实体(员工)的 Angular 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>

感觉像是时间问题,或者可能需要调用其他东西?任何帮助,将不胜感激

4

1 回答 1

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???
于 2018-10-21T16:14:47.610 回答