Skip to main content

问题排查

单个元素被识别为多个元素

当 UI Coverage 将单个元素识别为多个不同元素时,可能表明存在元素识别问题。这通常由以下原因导致:

  • 自动生成或动态变化的属性(如 UUID)在不同快照中存在差异
  • 框架生成的特定库标识符,例如 id 属性

解决方案

  • 添加唯一标识符:为元素分配稳定的标识符如 data-cydata-test
  • 忽略动态属性:使用 attributeFilters 排除测试间变化的属性
  • 手动配置识别方式:通过 elements 配置明确定义元素识别方式

多个不同元素被识别为相同元素

如果不同元素在 UI Coverage 中被归为一组,可能是由于以下原因导致标识符不足或不够特定:

  • 缺少唯一的 data-*id 属性
  • 多个元素共享通用标识符如 data-test="button"
  • 使用了 UI Coverage 未优先考虑的属性如 aria-label

解决方案

  • 添加唯一标识符:为每个元素分配不同的 data-cydata-test
  • 过滤通用属性:使用 attributeFilters 配置排除非代表性属性
  • 自定义属性使用:更新 significantAttributes 配置以优先考虑相关标识符
  • 手动识别元素:通过 elements 配置指定元素识别方式

相似元素未被归为一组

如果执行相同操作的元素未被分组,可能是由于:

  • 特定库标识符(如动态 id 值)不能代表元素特征从而阻碍分组
  • 包含动态数据的标识符(如 UUID)

解决方案

  • 使用共享标识符:为相似元素应用一致的 data-cydata-test
  • 忽略动态属性:配置 attributeFilters 排除变化属性
  • 手动分组元素:使用 elementGroups 配置定义自定义分组

不同元素被错误归为一组

如果无关元素被分组,可能是由于过于通用的标识符或共享属性导致。常见例子包括:

  • 缺少可区分元素的唯一属性
  • 不同元素共享通用值如 data-test="button"

解决方案

  • 添加独特标识符:为每个元素使用唯一的 data-cydata-test
  • 过滤共享属性:通过 attributeFilters 配置排除通用标识符
  • 更新识别规则:调整 significantAttributes 配置以改进区分度
  • 手动分离分组:使用 elementGroups 配置定义独立分组