首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >量角器测试yes按钮点击mat-dialog

量角器测试yes按钮点击mat-dialog
EN

Stack Overflow用户
提问于 2018-10-21 10:09:07
回答 1查看 810关注 0票数 0

我有一个用于删除实体(员工)的angular 6 material对话框。我想要设置量角器步骤,单击对话框的yes按钮来调用删除。现在,我有一个页面对象函数可以做到这一点:

代码语言:javascript
复制
deleteYesButton = () => element(by.id('deleteYes'));

在我的e2e文件中,我将此操作作为异步测试的一个步骤:

代码语言:javascript
复制
await page.deleteYesButton.click();

此时将出现对话框,但单击只会关闭对话框,而不执行删除操作。如果我手动使用应用程序,按下yes按钮,一切正常。

对话框的标记如下所示:

模板:

代码语言:javascript
复制
<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>

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

EN

回答 1

Stack Overflow用户

发布于 2018-10-22 00:14:48

所以我修改了代码,这样页面函数就像demouser123建议的那样是异步的。我不得不将e2e代码修改为以下代码:

代码语言:javascript
复制
const delBtn = await page.deleteYesButton();
await delBtn.click();

但却经历了与原作相同的结果。我还检查了一下,以确保没有Oleski要求的副本。让它工作的是在原始代码之后添加一个browser.pause。因此,现在可以这样做了:

代码语言:javascript
复制
await page.deleteYesButton().click();
browser.pause(5000);  // adding this allowed the delete to go through???
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52911602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档