如何使用Cypress 12测试Vuetify 3的v-select组件?
测试Vuetify 3 v-select组件的Cypress方案
针对你遇到的无法选中v-select选项的问题,核心原因是Vuetify的v-select组件需要先触发下拉展开,或正确定位到内部可交互元素,直接使用type方法无法生效。以下是两种可行解决方案:
方案1:直接点击展开下拉并选择选项
无需修改组件,通过点击触发下拉菜单,再定位目标选项完成选择:
// 展开下拉菜单 cy.get('[data-cy="country"]').click(); // 定位并点击目标选项 cy.get('.v-list-item-title').contains('UG').click();
若页面存在多个下拉菜单,可缩小选择范围避免冲突:
cy.get('[data-cy="country"]').click(); cy.get('[data-cy="country"]').within(() => { cy.get('.v-list-item-title').contains('UG').click(); });
方案2:通过搜索输入选择(需组件开启搜索)
如果要模拟用户输入筛选的场景,先给v-select添加searchable属性开启搜索功能:
<v-select v-model="country" :items="['UG', 'KE', 'TZ']" variant="outlined" data-cy="country" label="Dam Id*" :rules="[required]" required searchable <!-- 新增搜索属性 --> ></v-select>
然后在测试中激活输入框并完成输入选择:
// 激活v-select组件 cy.get('[data-cy="country"]').click(); // 定位内部输入框,输入内容后回车确认 cy.get('[data-cy="country"] input').type('UG{enter}');
另外注意:你原始测试代码存在选择器语法错误,cy.get([data-cy="country"])需改为cy.get('[data-cy="country"]')(选择器必须用引号包裹)。
内容的提问来源于stack exchange,提问作者Makiika Aron
相关产品推荐
相关产品推荐

