我有一个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>
感觉是时间问题还是需要调用其他内容?任何帮助将不胜感激
答案 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???