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

Robot Framework中如何存储关键字执行结果到变量并获取布尔值

问题原因

Page Should Contain是SeleniumLibrary提供的断言类关键字,本身无返回值:

  • 页面匹配到目标文本时,关键字正常执行完成,没有返回内容,这就是你赋值拿到None的原因
  • 页面未匹配到目标文本时,关键字会直接抛出断言错误,终止当前用例执行,不会走到后续赋值、打印步骤
    另外你提供的示例代码里目标文本存在拼写错误:写的是The login hasfailed.,和你预期校验的The login has failed.少了空格,也会导致校验结果不符合预期。
获取布尔值返回结果的实现方案

根据你是否需要保留「断言失败即终止用例」的特性,二选一即可:

方案1:不终止用例,仅获取检查的布尔结果

如果你的需求是不管文本存在与否都继续执行后续逻辑,只拿到True/False的检查结果,用BuiltIn库内置的Run Keyword And Return Status关键字包裹原断言即可。这个关键字会捕获被包裹关键字的执行状态:执行成功返回${True},执行失败返回${False},不会抛出错误终止用例。
示例代码:

${item} =    Run Keyword And Return Status    Page Should Contain    The login has failed.
Log To Console    ${item}

执行后${item}就是你需要的布尔值:页面存在对应文本时值为True,不存在时值为False。

方案2:保留原断言终止逻辑,同时记录校验状态

如果你需要保留原断言的能力——即文本不存在时直接终止用例抛错,不需要额外包裹关键字。因为只要断言执行通过能走到下一步,就说明校验已经符合预期,直接给变量赋值True即可:

Page Should Contain    The login has failed.
${item} =    Set Variable    ${True}
Log To Console    ${item}

这种写法下如果页面不存在目标文本,用例会直接在Page Should Contain步骤抛错终止,不会执行后续赋值逻辑,完全保留原有断言的校验能力。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:36:23