我有一个用于删除实体(员工)的angular 6 material对话框。我想要设置量角器步骤,单击对话框的yes按钮来调用删除。现在,我有一个页面对象函数可以做到这一点:
deleteYesButton = () => element(by.id('deleteYes'));在我的e2e文件中,我将此操作作为异步测试的一个步骤:
await page.deleteYesButton.click();此时将出现对话框,但单击只会关闭对话框,而不执行删除操作。如果我手动使用应用程序,按下yes按钮,一切正常。
对话框的标记如下所示:
模板:
<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>这感觉像是时间问题,或者可能需要调用其他东西?任何帮助都将不胜感激
发布于 2018-10-22 00:14:48
所以我修改了代码,这样页面函数就像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???https://stackoverflow.com/questions/52911602
复制相似问题