能否让Cypress的cy.nodes选择器实现不区分大小写匹配?
解决Cytoscape节点名称不区分大小写的搜索问题
问题描述
我已使用选择器实现了按名称搜索功能,代码如下:
cy.nodes(`[name *= '${pattern}']`);
该功能运行正常,但存在区分大小写的问题。请问是否可以定义一个不区分大小写的选择器?若没有现成方案,我计划通过遍历每个节点并调用测试函数的方式手动实现该功能。
解决方案
- Cytoscape的原生属性选择器不支持原生的不区分大小写匹配,但有更简洁的替代方案:
直接使用.filter()方法自定义匹配逻辑,实现和原选择器*=行为一致的不区分大小写包含搜索:cy.nodes().filter(node => { const nodeName = node.data('name'); // 统一转为小写后判断包含关系,可选链避免null/undefined报错 return nodeName?.toLowerCase().includes(pattern.toLowerCase()); }); - 若你想尝试自定义选择器的方式,虽可通过
cy.extend()注册伪类选择器,但filter方法更直观、代码维护成本更低,完全能替代手动遍历节点的实现方案。
内容的提问来源于stack exchange,提问作者Selena Mallet
相关产品推荐
相关产品推荐

