如何在新的python关键字文件中共享当前浏览器(webdriver)对象

如何在新的python关键字文件中共享当前浏览器(webdriver)对象,python,robotframework,Python,Robotframework,我使用下面的代码,但它返回:RuntimeError('没有打开浏览器') \uuuu init\uuuu()中的代码在对象初始化时运行-在Robot框架中,导入库时会发生这种情况(在文件的开头)。此时,没有打开的浏览器-您还没有运行套件设置,关键字openbrowser还没有运行;这就是例外 “修复”不是在构造函数中获取webdriver的实例: def __init__(self): # super.__init__() self.lib = BuiltIn().get_li

我使用下面的代码,但它返回:RuntimeError('没有打开浏览器')


\uuuu init\uuuu()
中的代码在对象初始化时运行-在Robot框架中,导入库时会发生这种情况(在文件的开头)。此时,没有打开的浏览器-您还没有运行套件设置,关键字
openbrowser
还没有运行;这就是例外

“修复”不是在构造函数中获取webdriver的实例:

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

这种方法是使用自动getter和setter;当您的代码使用
self.driver
时,如果未定义它的值(仍然
None
),它将自动分配给
self.lib.\u current\u browser()

的返回,将
self.driver
设置为属性将更加方便。
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