【问题标题】:Robot Framework SyntaxError: mismatched input ':' expecting EOFRobot Framework SyntaxError:不匹配的输入':'需要EOF
【发布时间】:2018-01-16 00:58:31
【问题描述】:

我正在使用 Hi-Fi 的 SeleniumLibrary 为 Java 编写带有 Selenium 的 RF 测试套件。

我正在使用保存在 Variables.robot 文件中的变量来实现一些高级关键字,如下所示:

*** Variables ***
${EXPECTED URL}                       https://www.test.com

这个文件正在我的 Resource.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

这是我执行时得到的:

Evaluating expression 'https://www.test.com/signup/new==https://www.test.com/signup/new' failed: SyntaxError: mismatched input ':' expecting EOF (<string>, line 1)

(在我的示例中,我必须将实际公司 url 替换为虚拟 url,但我试图保持类似的 url 结构)

我不确定发生了什么。据我所知,它正在比较两个完全匹配的 URL,但不知何故,它无法识别 ':' 字符。我尝试用反斜杠 (:) 转义它,但出现了同样的错误。

【问题讨论】:

    标签: selenium robotframework


    【解决方案1】:

    所有变量都被替换后,表达式必须是有效的python表达式。您要么需要添加引号,要么使用特殊的 $variable 语法(参见内置库文档中的 Evaluating Expressions):

    Should Be True  '${link}'=='${EXPECTED URL}/signup/new'
    

    -或-

    Should Be True  $link == $expected_url
    

    【讨论】:

    • 哦,所以添加引号使这些文字字符串可以进行比较,对吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2022-06-21
    • 2022-01-05
    • 1970-01-01
    • 2013-10-04
    • 2019-11-02
    • 1970-01-01
    相关资源
    最近更新 更多