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

使用bunit的Find方法选择含|的CSS ID时抛出异常

问题解答

CSS中|的特殊含义

CSS选择器里的|是命名空间分隔符,用来区分不同XML命名空间下的元素(比如SVG与HTML混合的场景)。但HTML页面里基本用不上这个特性,可一旦控件ID包含|,直接写#xxx|yyy这类选择器时,CSS解析器会把xxx当成命名空间、yyy当成元素名,不会将其识别为ID的一部分,这就是你用bunit的Find方法找不到元素的核心原因。

解决方法

有两种实用的处理方式:

  • 转义特殊字符:在CSS选择器里把|用\|转义。注意在C#代码中需要写双反斜杠(因为C#里反斜杠本身是转义符),示例:
    var targetElement = cut.Find("#my\\|control");
    
  • 使用属性选择器:直接通过[id="完整ID"]的方式匹配,这种写法无需转义,更直观:
    var targetElement = cut.Find("[id='my|control']");
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:48:13