我正在写一个e2e测试,它试图点击页面上的日历元素。当我打开日历时,Cypress实际上是在点击一个数字,但它之后不会点击Done按钮。
下面是检查的元素:
以下是日期选取器:
代码如下:
<div style="text-align: center;">
<ion-datetime presentation="date" *ngIf="showPicker" display-format="MM/DD/YYYY" min="1900-01-01"
placeholder="*Enter your date of birth" formControlName="dateOfBirth" (ionChange)="dateChanged($event)"
showDefaultButtons="true" (ionCancel)="showPicker = false;">
</ion-datetime>
</div>
我已经尝试在屏幕截图中显示的确认按钮上使用默认ID。
这不起作用:如果您想在一个页面上找到一个新的按钮,请点击这里。如果您有任何问题,请点击这里。
如有任何帮助,我们将不胜感激。
3条答案
按热度按时间y3bcpkx11#
您在该页面上有一些带有shadow DOM的元素,为了避免出现问题,请尝试在测试中添加设置
includeShadowDom: true
。这样,您的两个命令都可以工作
也可以在
cypress.config.js
中全局设置vwkv1x7d2#
如果您有其他需要遍历Shadow DOM的元素,那么在cypress配置文件中写入
includeShadowDom: true
是一个很好的做法。然后您可以直接使用命令:
icnyk63a3#
Done按钮在DOM中带有一个
id
。最好在测试中使用该标识符,因为id
在发布期间应该永远不会更改。使用第二个示例(目标是id
),您需要更正语法。应该是
cy.get('[id="confirm-button"]').click();
如果仍然不起作用,请尝试包含标记类型:
cy.get('ion-button[id="confirm-button"]').click();