2020from robot .libraries .BuiltIn import BuiltIn
2121
2222from SeleniumLibrary .base import DynamicCore
23+ from SeleniumLibrary .errors import NoOpenBrowser
2324from SeleniumLibrary .keywords import (AlertKeywords ,
2425 BrowserManagementKeywords ,
2526 CookieKeywords ,
3435 WaitingKeywords ,
3536 WindowKeywords )
3637from SeleniumLibrary .locators import ElementFinder , TableElementFinder
37- from SeleniumLibrary .utils import (BrowserCache , Deprecated , LibraryListener ,
38- timestr_to_secs )
38+ from SeleniumLibrary .utils import (Deprecated , LibraryListener , timestr_to_secs ,
39+ WebDriverCache )
3940
4041
4142__version__ = '3.0.0b4.dev1'
@@ -342,7 +343,7 @@ def __init__(self, timeout=5.0, implicit_wait=0.0,
342343 WaitingKeywords (self ),
343344 WindowKeywords (self )
344345 ]
345- self ._browsers = BrowserCache ()
346+ self ._drivers = WebDriverCache ()
346347 DynamicCore .__init__ (self , libraries )
347348 self .ROBOT_LIBRARY_LISTENER = LibraryListener ()
348349 self ._element_finder = ElementFinder (self )
@@ -362,8 +363,8 @@ def run_keyword(self, name, args, kwargs):
362363 self .failure_occurred ()
363364 raise
364365
365- def register_browser (self , browser , alias ):
366- return self ._browsers .register (browser , alias )
366+ def register_driver (self , driver , alias ):
367+ return self ._drivers .register (driver , alias )
367368
368369 def failure_occurred (self ):
369370 """Method that is executed when a SeleniumLibrary keyword fails.
@@ -383,12 +384,23 @@ def failure_occurred(self):
383384 finally :
384385 self ._running_on_failure_keyword = False
385386
387+ @property
388+ def driver (self ):
389+ """Current active driver.
390+
391+ :rtype: selenium.webdriver.remote.webdriver.WebDriver
392+ :raises SeleniumLibrary.errors.NoOpenBrowser: If browser is not open.
393+ """
394+ if not self ._drivers .current :
395+ raise NoOpenBrowser ('No browser is open.' )
396+ return self ._drivers .current
397+
386398 @property
387399 def browser (self ):
388- """Current active browser"""
389- if not self . _browsers . current :
390- raise RuntimeError ( 'No browser is open' )
391- return self ._browsers . current
400+ # TODO: Remove after 3.0 RC1 release.
401+ warnings . warn ( '"SeleniumLibrary.browser" is deprecated, '
402+ 'use "SeleniumLibrary.driver".' , DeprecationWarning )
403+ return self .driver
392404
393405 def find_element (self , locator , parent = None ):
394406 """Find element matching ``locator``.
@@ -423,9 +435,9 @@ def _cache(self):
423435
424436 def _current_browser (self ):
425437 warnings .warn ('"SeleniumLibrary._current_browser" is deprecated, '
426- 'use "SeleniumLibrary.browser " instead.' ,
438+ 'use "SeleniumLibrary.driver " instead.' ,
427439 DeprecationWarning )
428- return self .browser
440+ return self .driver
429441
430442 def _run_on_failure (self ):
431443 warnings .warn ('"SeleniumLibrary._run_on_failure" is deprecated, '
0 commit comments