You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:15:43