【问题标题】:How to compare two strings equal or not in Robot Framework如何在机器人框架中比较两个字符串是否相等
【发布时间】:2013-07-24 04:53:40
【问题描述】:

如何在 Robot Framework 中比较两个字符串是否相等。例如:

${xyz}=    Get Text    xpath=/html/body/div/div[2]/div[3]/div/div/div/div/h3
${abc}=    Get Text    xpath=/html/body/div/div[2]/div[4]/div/div/div/div/h3

这些 xpath 值得到不同的字符串。那么如何比较字符串是否相等呢?

将值存储在 Robot Framework 中的变量中是否正确?

【问题讨论】:

  • 你做过研究吗?有许多用于比较事物的内置关键字。

标签: python webdriver selenium-webdriver robotframework


【解决方案1】:

是的,这是存储变量的正确方法。尽管您也可以不使用等号:

${xyz}    Get Text    xpath=/html/body/div/div[2]/div[3]/div/div/div/div/h3
${abc}    Get Text    xpath=/html/body/div/div[2]/div[4]/div/div/div/div/h3

现在您已经为变量分配了两个不同的字符串,您可以这样做:

Should Be Equal As Strings    ${xyz}    ${abc}

您可以查看Should Be Equal As Strings here 的文档。

【讨论】:

    【解决方案2】:

    Should Be Equal As Strings 的替代方法是使用 Should Be True - 它将提供的参数评估为 python 表达式(例如“可以用值替换的东西”),如果出现 False 则失败:

    Should Be True     """${variable 1}""" == """${variable 1}"""
    

    当您无法控制值时(例如,当从外部源 - 网页获取时)使用 triple quotes 是一个好习惯 - 此构造允许值在其中包含引号或换行符,而不会导致语法错误。

    虽然这种方法对于简单的检查可能有点麻烦,但它非常强大——你可以使用 python 提供的任何东西。例如,如果检查不区分大小写:

    Should Be True     """${variable 1}""".lower() == """${variable 1}""".lower()
    

    或者,如果任何起始/尾随空格无关紧要:

    Should Be True     """${variable 1}""".strip() == """${variable 1}""".strip()
    

    或者,一个字符串是另一个字符串的一部分:

    Should Be True     """${variable 1}""" in """${variable 1}"""
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2011-04-25
      • 2021-09-14
      相关资源
      最近更新 更多