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

如何使用Run Keyword If实现元素不存在时校验另一元素存在

Run Keyword If 实现页面元素分支校验的实现方案

首先明确核心注意点:不要直接将断言类关键字Page Should Contain Element写在Run Keyword If的判断条件位——这个关键字校验失败时会直接抛出异常终止用例执行,根本不会进入ELSE分支,必须先将元素存在性的校验结果转为布尔值再做分支判断。

具体实现步骤

  • 提前定义好两个元素的定位器,替换成你项目里实际的定位表达式即可
  • 用Run Keyword And Return Status包裹图表元素的校验逻辑,这个关键字会捕获断言结果,校验通过返回True、校验失败返回False,不会直接终止用例
  • 基于返回的布尔值走Run Keyword If分支:为True时执行图表存在后的后续业务流程,为False时走ELSE分支校验无数据提示图片是否存在

可直接复用的代码示例

*** Variables ***
# 替换为实际的元素定位
${data_chart_locator}    xpath://div[@class='connected-user-chart']
${no_data_tip_locator}  xpath://img[@alt='No data Found']

*** Test Cases ***
校验连接用户对应页面展示逻辑
    # 前置操作:打开待测页面,按你的实际业务逻辑补充
    Open Browser    ${your_test_page_url}    chrome
    Wait Until Page Is Loaded

    # 核心分支判断逻辑
    ${is_chart_show}    Run Keyword And Return Status    Page Should Contain Element    ${data_chart_locator}
    Run Keyword If    ${is_chart_show}    Run Keywords
    ...    Log    检测到已连接用户,数据图表加载正常
    ...    # 此处按顺序追加图表存在时需要执行的后续测试步骤即可
    ...    ELSE
    ...    Page Should Contain Element    ${no_data_tip_locator}
    ...    Log    无已连接用户,无数据提示图片展示正常

    # 公共收尾步骤
    Close Browser

简写写法(Robot Framework 4.0+版本支持)

如果不想单独定义变量存储校验结果,可以直接在判断条件位调用返回布尔值的逻辑,写法更紧凑:

Run Keyword If    Run Keyword And Return Status(Page Should Contain Element, ${data_chart_locator})
...    Log    图表存在,执行后续业务流程
...    ELSE    Page Should Contain Element    ${no_data_tip_locator}

常见踩坑提醒

  • 如果分支内需要执行多个连续关键字,必须用Run Keywords包裹同分支下的所有操作,否则框架会识别错关键字参数
  • 不要省略ELSE分支前的换行缩进标记...,否则会报语法错误
  • 元素校验前建议加合理的显式等待,避免页面未加载完成导致的判断误判

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:15:44