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

如何在Cypress中选中data-bip-collection内的velocity_and_express选项?

解决Best In Place下拉选项选中问题

你的代码失败主要有两个原因:

  1. 点击触发下拉后直接用全局cy.get()查找选项,此时下拉选项可能还没渲染完成,或者不在当前元素的上下文里
  2. 确认弹窗的绑定时机太晚,弹窗出现时可能还没注册处理函数

以下是几种可行的解决方案:

方案一:通过文本内容选中选项

这种方式适配性最强,不管插件生成的下拉结构是什么,只要能定位到对应文本的选项即可:

// 提前绑定确认弹窗的自动确认逻辑
cy.on('window:confirm', () => true);

cy.get('[data-bip-attr="funding_type"]')
  .click() // 触发下拉框展开
  .contains('velocity_and_express') // 定位目标选项
  .should('be.visible') // 确保选项已渲染可见
  .click();

方案二:针对生成的select元素操作

如果Best In Place点击后生成了标准<select>控件,可直接用select()方法选中:

cy.on('window:confirm', () => true);

cy.get('[data-bip-attr="funding_type"]')
  .click()
  .get('select') // 找到动态生成的select元素
  .select('velocity_and_express'); // 通过value值选中目标选项

方案三:在当前上下文内查找选项

如果下拉选项是当前span的子元素,用find()代替全局cy.get(),确保在正确的上下文里查找:

cy.on('window:confirm', () => true);

cy.get('[data-bip-attr="funding_type"]')
  .click()
  .find('[value="velocity_and_express"]') // 在当前元素的子节点中筛选选项
  .should('be.visible')
  .click();

关键注意点

  • 确认弹窗的处理逻辑必须放在触发点击操作之前,否则可能无法捕获弹窗
  • 优先使用should('be.visible')这类断言等待元素渲染,避免依赖固定的wait()时间,让测试更稳定

内容的提问来源于stack exchange,提问作者140218-M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:05:20