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