Vue3表格组件Cypress测试:无法检测Font Awesome排序图标问题
问题分析与解决方法
核心问题很明确:你要验证的排序箭头图标默认是隐藏状态,只有点击表头触发排序逻辑后才会显示,但你的测试没有执行点击表头的操作,直接去查找图标,自然无法检测到。
修正步骤
- 先点击第二个表头单元格,触发排序逻辑,让图标显示出来
- 再对图标进行存在性断言
修正后的测试代码
it('shows fa arrow icons after sorting trigger', () => { cy.mount(TableList2, { props: { actions: true, massUpdatable: undefined, columns: true, rows: true, isLoading: false, lastPageLoaded: true, fullPage: true } }) // 点击第二个表头单元格,触发排序以显示图标 cy.get('[data-cy="table-head"] th[data-cy="table-head-cell"]') .eq(1) .click() // 定位该表头并断言Font Awesome图标存在 cy.get('[data-cy="table-head"] th[data-cy="table-head-cell"]') .eq(1) .find('font-awesome-icon') .should('exist') })
额外注意事项
- 如果点击后图标有动画延迟或异步渲染逻辑,可以添加可见性断言确保元素就绪:
cy.get('[data-cy="table-head"] th[data-cy="table-head-cell"]') .eq(1) .click() .find('font-awesome-icon') .should('be.visible') - 部分Vue项目中Font Awesome组件可能会渲染为
<i>标签而非<font-awesome-icon>,此时需要调整选择器为.find('i.fa')或对应图标类名
内容的提问来源于stack exchange,提问作者Farid Guzman
相关产品推荐
相关产品推荐

