找到多个同名关键字,但只有唯一关键字

Mah*_*lik 1 automated-tests python-3.x robotframework

*当我运行我的机器人测试时,它说找到多个名称为“设置变量值”的关键字。给出要使用的关键字的全名:step_definitions.Set Variable Value for variable_handler.Set Variable Value for 它对variable_handler.py中提到的所有关键字执行此操作

我缺少什么吗?我们需要给出包含该关键字的 python 文件的名称吗?* 网上找的不多。已在设置中添加了库。

    Variable_handler.py


    ```@keyword(name='Set Variable Value for')

        def Set_Variable_Value_for(tag, value):
        my_token_file = 'Resources/written_variables.yml'
        data = None
        with open(my_token_file, 'r') as testData:
            data = yaml.load(testData)
        data[tag] = value
        with open(my_token_file, 'w') as writeTestData:
            print(ruamel.yaml.dump(data, writeTestData, 
        Dumper=ruamel.yaml.RoundTripDumper))```


    step_definitions.py



    '''@keyword(name='Set Start Time for Test')

        def Test_Start_Time():
        tz = timezone('UTC')
        Time_Now = datetime.now(tz)
        naive_date = Time_Now.replace(tzinfo=None)
        Set_Variable_Value_for('START_TIME', naive_date)```

     Test.robot



    '''Create a New Member
        [Documentation] Add a New Member
        [Tags]  CreateMember  MemberAndProjectCreationFlow  SanityTest  
       All
        Login to Platform Analytics
        Verify Member List Page Elements
        Click on Add Member
        Add Member Breadcrumb is displayed
        Add New Member Details
        Verify New Member Creation
        Search for the Member  ${NEW_MEMBER_NAME_GLOBAL}
        Search the Results and Go To  ${NEW_MEMBER_NAME_GLOBAL}  
      ${Member_Row_Locator}  ${Member_Column}
        ${MEMBER_HOMEPAGE} =  Replace String  ${MEMBER_HOME}  
     MEMBERHOME  ${NEW_MEMBER_SCHEMA_GLOBAL}
        Set Global Variable  ${MEMBER_HOMEPAGE_GLOBAL}  
      ${MEMBER_HOMEPAGE}
        Set Variable Value for  MEMBER_HOMEPAGE  ${MEMBER_HOMEPAGE}

        Log To Console  Member Creation Successful.```
Run Code Online (Sandbox Code Playgroud)

它应该可以在不指定包含关键字的 python 文件的情况下工作。我已经导入了所有需要的东西,比如variable_handler和步骤定义

Bry*_*ley 7

问题的根源在于您将两个或多个同名关键字导入到测试中。当您尝试运行关键字时Set Variable Value for,机器人不知道要运行哪个关键字。它无法知道这两个名称是否代表两个不同的函数或两个不同库中的相同函数。

您有三种可能的解决方案:

  1. 根据错误提示,您可以指定关键字的完整路径,例如step_definitions.Set Variable Value
  2. 您可以使用内置关键字Set Library Search Order告诉机器人将一个库优先于另一个库。
  3. 您可以修改您的库,以便没有重复的关键字名称

有关更多信息,请参阅机器人框架用户指南中的处理同名关键字