Как импортировать библиотеки python (с несколькими классами и функциями) в среде роботов - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть python имя модуля message.py

 #!/usr/bin/env python3
class TestClass1(object):
    def __init__(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2

    def print_args1(self):
        print ("Inside print_args1")
        print (self.arg1, self.arg2)

class TestClass2(object):
    def __init__(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2

    def print_args2(self):
        print ("Inside print_args2")
        #print (arg1, arg2)
        print (self.arg1, self.arg2)

Как мне импортировать это сообщение в мой скрипт робота. И как я могу создать объекты этих двух классов и вызвать их соответствующий метод экземпляра в рамках робота. Имя моего модуля (message.py) не совпадает с определенным именем класса внутри модуля.

Я могу импортировать и использовать в другом файле python.

#!/usr/bin/env python3
import message

obj1 = message.TestClass1(10,20)
obj2 = message.TestClass2(30,40)

obj1.print_args()
obj2.print_args2()

Невозможно импортировать и создавать объекты внутри моего скрипта робота. В скрипте робота в таблице настроек

*** Settings ***
Library          message.py

Как мы можем создавать объекты TestClass1 и TestClass2 в скрипте робота. и вызвать их метод, используя эти объекты.

Я могу определить функцию python в файле python, который возвращает мне дескриптор объекта. Возможность вызывать эту функцию Python в роботе и использовать этот объект может вызывать их метод.

Ниже приведен код

ef newFun(arg1,arg2):
   return TestClass1(arg1,arg2)
def newFun2(arg1,arg2):
   return TestClass2(arg1,arg2)
=================
 The above two functions    newFun and newFun2 I created in python file and calling these function from robot script. This will return me TestClass1 and TestClass2 handle .
Then we can call their method print_args1 and print_args2 from robot using these objects.


Robot code  is as below.
======================>>>>hello.robot
*** Settings ***
Library          message.py
*** Variables ***
*** Keywords *** 
Create TestClass1 Object
        ${object1} =    newFun    10    20
        [Return]    ${object1}
*** Test Cases ***
First TestCase with TestClass1 object

    LOG    Instantiate TestClass1 Object    console=yes
    ${instance}    Create TestClass1 Object
    LOG    ${instance}
    LOG    Calling print_args1 function using TestClass1 Object    console=yes
    Call Method    ${instance}    print_args1

Теперь вместо создания этих объектов с помощью функции python (в например, newFun и newFun2). Есть ли способ динамического создания объектов непосредственно в скрипте робота.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...