Код в __init__()
запускается при инициализации объекта - в Robot Framework, который происходит при импорте библиотеки (в начале файла). На данный момент нет открытого браузера - вы еще не запустили установку пакета, ключевое слово Open Browser
не было запущено; таким образом, исключение.
«Исправление» - не получение экземпляра веб-драйвера в конструкторе:
def __init__(self):
# super.__init__()
self.lib = BuiltIn().get_library_instance('ExtendedSelenium2Library')
self._driver = None # internal attribute, don't use it in the methods, but "self.driver"
@property
def driver(self):
if self._driver is None:
self._driver=self.lib._current_browser()
return self._driver
@driver.setter
def driver(self, custom):
self._driver=custom
Этот подход использует свойства класса - автоматический метод получения и установки; когда ваш код использует self.driver
, если его значение не определено (по-прежнему None
), оно будет автоматически присвоено возвращению self.lib._current_browser()
.