4

如何在 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 中的变量中是否正确?

4

2 回答 2

9

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

${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 您可以在此处查看文档。

于 2013-07-24T16:10:49.573 回答
3

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

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

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

虽然这种方法对于简单的检查可能有点麻烦,但它非常强大——你可以使用 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}"""
于 2019-01-13T19:31:01.877 回答