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

使用Robot Framework验证shadow root文本节点报is_displayed错误如何解决

解决方案

错误原因

你在DOM定位表达式末尾追加了.innerText,该表达式返回的是字符串类型的文本值,而非DOM元素对象。Wait Until Element Is Visible关键字要求入参为可识别的元素定位符,传入字符串自然会抛出*'str' object has no attribute 'is_displayed'*的报错。

正确实现方式

方式1:使用原生DOM定位(兼容所有支持dom定位的版本)

先移除定位表达式里的.innerText,可分两步完成校验:

  1. 先校验元素可见
Wait Until Element Is Visible    dom:document.getElementById("react-root").shadowRoot.querySelector('div[class*="styles__RadiusUnitLabel"]')
  1. 再校验元素文本符合预期
Element Text Should Be    dom:document.getElementById("react-root").shadowRoot.querySelector('div[class*="styles__RadiusUnitLabel"]')    20 Meters

方式2:使用::shadow语法(SeleniumLibrary 4.0+版本支持,写法更简洁)

SeleniumLibrary 4.0及以上版本内置了shadow root定位语法::shadow,不需要编写冗长的JS表达式:

# 一步完成元素可见+文本校验
Element Text Should Be    css:#react-root::shadow div[class*="styles__RadiusUnitLabel"]    20 Meters

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 21:06:08