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

Robot Framework Browser插件:如何获取MPP Status的CSS/XPath?

问题

在Robot Framework中使用Browser插件时,无法获取MPP Status对应的状态文本(应为PASS或FAIL)。尝试了以下两种方式均未成功:

  • Get Text //*[contains(text(), 'MPP Status')]//following-sibling::span
  • Get Text //*[contains(text(), 'MPP Status')]//following-sibling::span equal 'PASS'

对应的HTML代码片段:

<table _ngcontent-c="" class="table table-vertical">
...    <tbody _ngcontent-c=""><tr _ngcontent-c="" class="ng-star-inserted">
...    <th _ngcontent-c="">MPP Status</th><td _ngcontent-c="">
...    <!---->
...    <!---->
...    <span _ngcontent-c="" class="label label-success ng-star-inserted"> PASS </span>
...    <!---->
解决思路

1. 修正XPath定位逻辑

原XPath的问题在于:定位到MPP Status的<th>元素后,直接找following-sibling::span是错误的——<th>的同级元素是<td>,而状态文本所在的<span>是嵌套在<td>内部的。正确的定位路径应该是:

  • 基础版XPath:
    Get Text    //th[text()='MPP Status']/following-sibling::td/span
    
  • 精准版XPath(结合表格类名缩小范围):
    Get Text    //table[@class='table table-vertical']//th[text()='MPP Status']/following-sibling::td/span
    

2. 状态断言的正确写法

Robot Framework的Get Text关键字不支持直接追加equal参数做断言,需要拆分步骤,同时注意去除文本前后的空格:

${status}=    Get Text    //th[text()='MPP Status']/following-sibling::td/span
Should Be Equal    ${status.strip()}    PASS

3. 动态页面适配

页面带有Angular标识(_ngcontent-c、ng-star-inserted),元素可能是动态加载的,建议先等待元素可见再操作:

Wait For Element Visible    //th[text()='MPP Status']/following-sibling::td/span
${status}=    Get Text    //th[text()='MPP Status']/following-sibling::td/span
Should Be Equal    ${status.strip()}    PASS

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:22:36