【发布时间】:2018-12-19 16:01:20
【问题描述】:
我正在使用 Angular Material 将 Cypress 添加到我的 Angular 6 项目中。欢迎新用户使用材质对话框(其中包含 iFrame),并通过单击对话框外部关闭对话框。
我尝试在 Cypress 中以多种方式关闭此对话框,并引入了等待和过度超时以确保它与网络加载问题无关:
cy.get('dialog-element', { timeout: 10000})
.wait(3000).click(-50, -50);
失败是因为它被 cdk-overlay-container 覆盖。使用 click(..., { force: true } ) 没有帮助。试过了
cy.get('.cdk-overlay-container', { timeout: 10000})
.wait(3000).click(-50, -50, { force: true });
这也没有帮助。对话框不会被关闭,连续点击也不起作用,即在尝试继续时它总是失败,例如
cy.get('[data-cy=element-on-page-beneath-dialog]').click();
调试时,我可以在对话框之外看到将发生单击的红点,因此鼠标的定位不是问题。
编辑:根据要求编辑材料对话框 HTML(注意宽度和高度足够小,因此对话框不会填满页面但会留下足够的空间,并且 src 有真正的 Youtube 视频链接)
<div style="overflow: hidden;">
<iframe style="margin-top: 2px; overflow: hidden;" [width]="videoWidth" [height]="videoHeight" src="..." frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
<div>
【问题讨论】:
-
如果可能的话,你能分享
html这个对话框吗