Skip to content

Commit dc875cf

Browse files
aaltatpekkaklarck
authored andcommitted
Rename browser attribute to driver (robotframework#976)
This makes it more explicit that the attribute holds a Selenium WebDriver instance. See issue robotframework#882.
1 parent c518611 commit dc875cf

27 files changed

+453
-464
lines changed

src/SeleniumLibrary/__init__.py

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from robot.libraries.BuiltIn import BuiltIn
2121

2222
from SeleniumLibrary.base import DynamicCore
23+
from SeleniumLibrary.errors import NoOpenBrowser
2324
from SeleniumLibrary.keywords import (AlertKeywords,
2425
BrowserManagementKeywords,
2526
CookieKeywords,
@@ -34,8 +35,8 @@
3435
WaitingKeywords,
3536
WindowKeywords)
3637
from 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, '

src/SeleniumLibrary/base/context.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ def __init__(self, ctx):
2828
self.ctx = ctx
2929

3030
@property
31-
def browser(self):
32-
return self.ctx.browser
31+
def driver(self):
32+
return self.ctx.driver
3333

3434
@property
35-
def browsers(self):
36-
return self.ctx._browsers
35+
def drivers(self):
36+
return self.ctx._drivers
3737

3838
@property
3939
def element_finder(self):

src/SeleniumLibrary/errors.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,7 @@ class WindowNotFound(SeleniumLibraryException):
2929

3030
class CookieNotFound(SeleniumLibraryException):
3131
pass
32+
33+
34+
class NoOpenBrowser(SeleniumLibraryException):
35+
pass

src/SeleniumLibrary/keywords/alert.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ def _handle_alert(self, alert, action):
207207

208208
def _wait_alert(self, timeout=None):
209209
timeout = self.get_timeout(timeout)
210-
wait = WebDriverWait(self.browser, timeout)
210+
wait = WebDriverWait(self.driver, timeout)
211211
try:
212212
return wait.until(EC.alert_is_present())
213213
except WebDriverException:

0 commit comments

Comments
 (0)