Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 23 additions & 11 deletions src/SeleniumLibrary/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from robot.libraries.BuiltIn import BuiltIn

from SeleniumLibrary.base import DynamicCore
from SeleniumLibrary.errors import NoOpenBrowser
from SeleniumLibrary.keywords import (AlertKeywords,
BrowserManagementKeywords,
CookieKeywords,
Expand All @@ -34,8 +35,8 @@
WaitingKeywords,
WindowKeywords)
from SeleniumLibrary.locators import ElementFinder, TableElementFinder
from SeleniumLibrary.utils import (BrowserCache, Deprecated, LibraryListener,
timestr_to_secs)
from SeleniumLibrary.utils import (Deprecated, LibraryListener, timestr_to_secs,
WebDriverCache)


__version__ = '3.0.0b4.dev1'
Expand Down Expand Up @@ -342,7 +343,7 @@ def __init__(self, timeout=5.0, implicit_wait=0.0,
WaitingKeywords(self),
WindowKeywords(self)
]
self._browsers = BrowserCache()
self._drivers = WebDriverCache()
DynamicCore.__init__(self, libraries)
self.ROBOT_LIBRARY_LISTENER = LibraryListener()
self._element_finder = ElementFinder(self)
Expand All @@ -362,8 +363,8 @@ def run_keyword(self, name, args, kwargs):
self.failure_occurred()
raise

def register_browser(self, browser, alias):
return self._browsers.register(browser, alias)
def register_driver(self, driver, alias):
return self._drivers.register(driver, alias)

def failure_occurred(self):
"""Method that is executed when a SeleniumLibrary keyword fails.
Expand All @@ -383,12 +384,23 @@ def failure_occurred(self):
finally:
self._running_on_failure_keyword = False

@property
def driver(self):
"""Current active driver.

:rtype: selenium.webdriver.remote.webdriver.WebDriver
:raises SeleniumLibrary.errors.NoOpenBrowser: If browser is not open.
"""
if not self._drivers.current:
raise NoOpenBrowser('No browser is open.')
return self._drivers.current

@property
def browser(self):
"""Current active browser"""
if not self._browsers.current:
raise RuntimeError('No browser is open')
return self._browsers.current
# TODO: Remove after 3.0 RC1 release.
warnings.warn('"SeleniumLibrary.browser" is deprecated, '
'use "SeleniumLibrary.driver".', DeprecationWarning)
return self.driver

def find_element(self, locator, parent=None):
"""Find element matching ``locator``.
Expand Down Expand Up @@ -423,9 +435,9 @@ def _cache(self):

def _current_browser(self):
warnings.warn('"SeleniumLibrary._current_browser" is deprecated, '
'use "SeleniumLibrary.browser" instead.',
'use "SeleniumLibrary.driver" instead.',
DeprecationWarning)
return self.browser
return self.driver

def _run_on_failure(self):
warnings.warn('"SeleniumLibrary._run_on_failure" is deprecated, '
Expand Down
8 changes: 4 additions & 4 deletions src/SeleniumLibrary/base/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ def __init__(self, ctx):
self.ctx = ctx

@property
def browser(self):
return self.ctx.browser
def driver(self):
return self.ctx.driver

@property
def browsers(self):
return self.ctx._browsers
def drivers(self):
return self.ctx._drivers

@property
def element_finder(self):
Expand Down
4 changes: 4 additions & 0 deletions src/SeleniumLibrary/errors.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,7 @@ class WindowNotFound(SeleniumLibraryException):

class CookieNotFound(SeleniumLibraryException):
pass


class NoOpenBrowser(SeleniumLibraryException):
pass
2 changes: 1 addition & 1 deletion src/SeleniumLibrary/keywords/alert.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ def _handle_alert(self, alert, action):

def _wait_alert(self, timeout=None):
timeout = self.get_timeout(timeout)
wait = WebDriverWait(self.browser, timeout)
wait = WebDriverWait(self.driver, timeout)
try:
return wait.until(EC.alert_is_present())
except WebDriverException:
Expand Down
Loading