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

如何选择含可变属性的data-cy定位器?动态文档菜单场景

动态生成文档菜单的data-cy定位器

核心思路就是把文件名和固定的-dropdown后缀做字符串拼接,不同测试工具里的具体写法如下:

Cypress 场景

直接用模板字符串生成完整的data-cy选择器,也可以封装成复用函数:

// 单个使用示例
const fileName = "PDF file # 1939";
const dropDownLocator = `[data-cy="${fileName}-dropdown"]`;

// 点击菜单按钮
cy.get(dropDownLocator).click();
// 封装成复用函数,方便多处调用
function getDocDropdown(fileName) {
  return `[data-cy="${fileName}-dropdown"]`;
}

// 调用示例
cy.get(getDocDropdown("PDF file # 1939")).click();

其他测试框架(比如 Playwright)

逻辑完全一致,只是定位器的调用方式不同:

const fileName = "PDF file # 1939";
const dropDownLocator = `[data-cy="${fileName}-dropdown"]`;

await page.locator(dropDownLocator).click();

注意点

  • 文件名要和页面上data-cy的前缀完全匹配,包括空格、大小写、特殊符号(比如示例里的#),不然会定位失败。
  • 用模板字符串包裹属性值时,文件名里的特殊字符不需要额外转义,CSS选择器会正确识别带引号的属性值。

内容的提问来源于stack exchange,提问作者Alex Y

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:36:01