【问题标题】:Pass objects as arguments in keywords in robot framework在机器人框架中将对象作为参数传递给关键字
【发布时间】:2020-03-17 11:09:30
【问题描述】:

我在这样创建的机器人文件中有两个对象。

Library  HwTest   COM17   SN2  WITH NAME  Smart Node 2

Library  HwTest   COM13   SN1  WITH NAME  Smart Node 1 

我需要在用户定义的关键字中传递智能节点 1 和智能节点 2。

但是当我在关键字后面给出对象名称时,它在 python 中被视为 unicode,而不是对象。我收到错误,例如 unicode 对象没有属性。 AttributeError: 'unicode' 对象没有属性 'filename'

【问题讨论】:

  • 请显示一些实际代码。听起来你不应该传递一个对象 name,你应该传递一个实际的对象。此外,通过Library 生成对象是一种非常奇怪的做事方式。 Library 不应该这样使用。
  • 我对此完全陌生。我的要求是我需要在用python编写的类的机器人框架中创建两个对象。然后将这些对象传递给关键字,以便与关键字关联的函数将从机器人获取这些对象。如果这不是正确的方法,请指导我如何在机器人文件中创建对象

标签: python-2.7 robotframework keyword


【解决方案1】:

你的问题没有足够的细节,但我会做出一个有根据的猜测,你有一个关键字需要你传入一个对象,但是你将库名称传递给它,如下所示:

The keyword  Smart Node 2

如果是这样,那不是在机器人中使用关键字库的方法。 “Smart Node 2”只是库的名称,而不是库本身。如果您尝试将库用作对象,则需要先获取该库的实例,然后再将其传递给关键字。

Robot 有一个名为Get library instance 的内置关键字,它可以返回库的实例。您需要调用它来获取实例,然后将实例传递给您的关键字。

例子:

${object}=  Get library instance  Smart Node 2
The keyword  ${object}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2013-11-08
    相关资源
    最近更新 更多