在机器人中找不到名称为&{headers} =的创建关键字的关键字

时间:2019-01-26 13:14:04

标签: automated-tests robotframework

运行此测试(即测试网站的登录页面时),我得到“找不到名称为&{headers} =创建字典的关键字”。如何使此测试正确运行?

我以前已经安装了所有导入的库,并在其他测试中使用了它们,所以我知道它们已正确安装。

*** Settings ***
Library     Collections
Library     RequestsLibrary
Library     OperatingSystem
*** Variables ***
${authToken}   
${username} example.user@email.com
${password} password
*** Test Cases ***
Log in Dashboard
    &{data}=    Create Dictionary   email=${username}   password=${password}
    &{headers}= Create Dictionary   Accept=application/json, text/plain, */*    Content-Type=application/json   Origin=http://examplesite.com   Referer=http://examplesite.com/angular/
    Create session  example   http://examplesite.com
    ${response}=    Post Request    example   /admin/login data=${data}    headers=${headers}
    log ${response}
    log ${response.json()}
    ${allocation_response}= To Json ${response.content}
    Set Global  Variable

1 个答案:

答案 0 :(得分:3)

可能您的IDE太“智能”,即使您按了TAB键,它也只在此处插入了一个空格:

&{headers}= Create Dictionary   Accept=application/json, text/plain, */*    Content-Type=application/json   Origin=http://examplesite.com   Referer=http://examplesite.com/angular/

您似乎在变量和关键字之间只有一个空格,因此将其视为一个关键字。在此处添加更多SPACE进行修复。

&{headers}=    Create Dictionary   Accept=application/json, text/plain, */*    Content-Type=application/json   Origin=http://examplesite.com   Referer=http://examplesite.com/angular/

在这一行上,您可能也会遇到相同的问题:

${allocation_response}= To Json ${response.content}