Robot Framework:如何获取HTML中可变位置的目标文本?
正确捕获目标文本的Robot Framework方法
你的问题核心是XPath定位逻辑错误:目标文本和<span class="labelText">Number: </span>处于同一个<p>标签内,但你之前的XPath错误指向了相邻的<p>标签,同时还存在拼写错误(lableText应为labelText),导致无法捕获目标内容。
以下是两种可行的解决方案:
方法1:先获取父p的全部文本,再提取目标部分
先通过span的特征定位到包含目标文本的<p>标签,获取完整文本后清理无关内容:
# 定位到包含Number: span的p标签,获取全部文本 ${full_p_text}= Get Text xpath=//div[@id="testblock"]//p[span[@class="labelText" and contains(text(), "Number: ")]] # 移除"Number: "文本 ${cleaned_text}= String Replace ${full_p_text} Number: ${EMPTY} # 去掉前后的引号和多余空格 ${target_text}= String Strip ${cleaned_text} " "
方法2:用XPath直接选取目标文本节点
通过XPath直接选取<p>标签下的独立文本节点(排除span的文本),再清理格式:
# 选取p标签下的第二个文本节点(对应目标内容所在节点) ${raw_text}= Get Text xpath=//div[@id="testblock"]//p[span[@class="labelText" and contains(text(), "Number: ")]]/text()[2] # 清理前后的引号和空格 ${target_text}= String Strip ${raw_text} " "
关键说明
两种方法都不依赖<p>标签的固定位置,而是通过span的特征动态定位父容器,完全适配你提到的“p标签位置不固定”的场景。
内容的提问来源于stack exchange,提问作者EunWoo Fang
相关产品推荐
相关产品推荐

