我正在使用Hi-Fi的SeleniumLibrary编写带有Selenium for Java的RF测试套件。
我使用Variables.robot文件中保存的变量实现一些高级关键字,如下所示:
*** Keywords ***
Main Links Are Working
Wait Until Element Is Visible ${SIGN UP IMG}
${link} Get Element Attribute ${SIGN UP IMG}@href
Should Be True ${link}==${EXPECTED URL}/signup/new
此文件正在我的Resource.robot中导入,用于关键字,如下所示:
Evaluating expression 'https://www.test.com/signup/new==https://www.test.com/signup/new' failed: SyntaxError: mismatched input ':' expecting EOF (<string>, line 1)
这是我在执行时得到的:
[accesskey]::after {
content: " [" attr(accesskey) "]";
}
(我必须在我的示例中替换实际的公司网址以获取虚拟网址,但我尝试保留类似的网址结构)
我不确定发生了什么。据我所知,它比较了两个完全匹配的网址,但不知怎的,它没有认识到&#39;:&#39;字符。我尝试使用反斜杠(:)来避免它,但同样的错误显示出来。
答案 0 :(得分:2)
在替换所有变量之后,表达式必须是有效的python表达式。您需要添加引号,或使用特殊的$variable
语法(请参阅BuiltIn库文档中的Evaluating Expressions):
Should Be True '${link}'=='${EXPECTED URL}/signup/new'
-OR -
Should Be True $link == $expected_url