【发布时间】:2022-12-09 01:08:35
【问题描述】:
我有一个用 Angular 编写的 Web 应用程序,我正在尝试在 Cypress 中进行测试。我无法显示下拉菜单(在左图中圈出)。单击 3 个点时会显示下拉菜单。单击这些点时,我注意到“fui-datagrid-action-menu”中的类属性更改为显示包围的类属性。因此,在 Cypress 中,我尝试将类属性值设置为圈出的值。但是在运行我的测试时,我得到一个“预期找到元素:fui-dropdown,但从未找到它。”。下面是我的赛普拉斯代码的 sn-p。任何人都可以建议我做错了什么,或者是否有更好的方法来为这样的页面编码,其中 Angular 元素是动态的(即类属性更改等)。谢谢。
cy.get('fui-widget-body')
.within(() => {
cy.log('user found');
cy.get('fui-datagrid-action-menu').invoke('show').trigger('mouseover', {force: true});
cy.get('fui-datagrid-action-menu').invoke('show').click({ force: true });
cy.get('fui-datagrid-action-menu').invoke('attr', 'class', 'fui-datagrid-body-row-action-menu ' +
'ng-star-inserted fui-datagrid-action-menu-visible fui-datagrid-action-menu-open')
.within(($menu) => {
cy.get('fui-dropdown').invoke('show').click({ force: true });
....
【问题讨论】:
-
这样的答案并不是真正的答案,但是使用动态类名(我必须测试反应应用程序)使用专用测试标签与对象交互要容易得多(我使用的是 data-cy 标签)。您或您的开发人员之一可以将它们添加到代码中吗?这是一种比依赖类名更可靠的测试方法。
-
谢谢,开发团队正在努力添加数据标签。