找到多个具有相同名称的关键字,但只有唯一的关键字

时间:2019-09-10 15:33:15

标签: python-3.x automated-tests robotframework

*当我运行机器人测试时,它会说多个关键字,名称为“ Set”     找到了“变量值”。输入您要使用的关键字的全名:     step_definitions。设置变量值     variable_handler。设置变量值     它会对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.```

它应该工作而无需指定包含以下内容的python文件     关键字。我已经导入了所需的所有东西,例如variable_handler和步骤定义

1 个答案:

答案 0 :(得分:3)

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

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

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

有关更多信息,请参见Handling keywords with same names中的robot framework user guide