Robot Framework отображает только ключевые методы класса на ключевые слова;ваш класс Engine
не предоставляет никаких методов из api
и cloud
- он, вероятно, использует их внутренне, но не определяет их как свои собственные.
Итак, вот ваше первое решение - создайте методы-оболочки для всех васнужно в случаях:
def an_api_method(self):
self.api.something()
И теперь в вашем распоряжении будет ключевое слово An API Method
.
Решение второе - заставить ваш класс наследовать другойдва:
class Engine(api, cloud):
, и ваши дела будут иметь доступ к всем их открытым методам.
Этот более сложный - вам придется вызывать их конструкторы (с помощью super()
), и если вы поддерживаете состояние в вашем классе, вы должны будете приспособиться к этому.Т.е. необходимы более радикальные изменения кода.
Третье решение не требует каких-либо изменений в коде Enhine
- но отказ от ответственности: Я не знаю, будет ли этоработать :) (я не за компьютером).
Он состоит из двух вызовов - сначала использовать Get Library Instance
, чтобы получить объект вашей импортированной библиотеки (из библиотеки Builtin), а затем - Call Method
:
${ref}= Get Library Instance Engine
Call Method $ref.api api_keyword