From 7ad56e9463a00e7f6dab9432dce66930dc1409bd Mon Sep 17 00:00:00 2001 From: "Ubuntu 12.04 Devel" Date: Thu, 2 Jan 2014 16:51:07 -0500 Subject: [PATCH 1/3] Register browser even if get url fails. An issue was reported with SeleniumLibrary [1] where if "Open Browser" succeeds in starting the browser but the get url call fails the opened browser doesn't get registered with the Library's internal browser registery. Thus when 'Close All Browsers' is called it fails to close the opened browser. This patch fixes that problem. [1] http://code.google.com/p/robotframework-seleniumlibrary/issues/detail?id=220 --- src/Selenium2Library/keywords/_browsermanagement.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Selenium2Library/keywords/_browsermanagement.py b/src/Selenium2Library/keywords/_browsermanagement.py index b1271225f..0346cde36 100644 --- a/src/Selenium2Library/keywords/_browsermanagement.py +++ b/src/Selenium2Library/keywords/_browsermanagement.py @@ -111,7 +111,11 @@ def open_browser(self, url, browser='firefox', alias=None,remote_url=False, self._info("Opening browser '%s' to base url '%s'" % (browser, url)) browser_name = browser browser = self._make_browser(browser_name,desired_capabilities,ff_profile_dir,remote_url) - browser.get(url) + try: + browser.get(url) + except: + self._cache.register(browser, alias) + raise self._debug('Opened browser with session id %s' % browser.session_id) return self._cache.register(browser, alias) From c7769a866a333c5ac374fe19768d5b5a6fa40c49 Mon Sep 17 00:00:00 2001 From: "Ubuntu 12.04 Devel" Date: Wed, 8 Jan 2014 15:04:29 -0500 Subject: [PATCH 2/3] Added debug log message indicating failed to open url. --- src/Selenium2Library/keywords/_browsermanagement.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Selenium2Library/keywords/_browsermanagement.py b/src/Selenium2Library/keywords/_browsermanagement.py index 0346cde36..28054da2a 100644 --- a/src/Selenium2Library/keywords/_browsermanagement.py +++ b/src/Selenium2Library/keywords/_browsermanagement.py @@ -115,6 +115,8 @@ def open_browser(self, url, browser='firefox', alias=None,remote_url=False, browser.get(url) except: self._cache.register(browser, alias) + self._debug("Opened browser with session id %s but failed to open url '%s'" + % (browser.session_id, url)) raise self._debug('Opened browser with session id %s' % browser.session_id) From 21829ec3eb4a2fdedc136560958e6126a785b00b Mon Sep 17 00:00:00 2001 From: "Ubuntu 12.04 Devel" Date: Thu, 9 Jan 2014 11:06:05 -0500 Subject: [PATCH 3/3] Added test verifying browser closes if 'Open Browser' is incomplete. This patch verifies the fix for #70. --- test/acceptance/open_and_close.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/acceptance/open_and_close.txt b/test/acceptance/open_and_close.txt index 9285b543e..b77e17bc2 100644 --- a/test/acceptance/open_and_close.txt +++ b/test/acceptance/open_and_close.txt @@ -17,3 +17,14 @@ There Should Be A Good Error Message If Browser Is Not Opened Close Browser Does Nothing When No Browser Is Opened Close Browser + +Browser Open With Not Well-Formed URL Should Close + [Documentation] Verify after incomplete 'Open Browser' browser closes + ... LOG 1.1:10 DEBUG STARTS: Opened browser with session id + ... LOG 1.1:10 DEBUG REGEXP: .*but failed to open url.* + ... LOG 2:2 DEBUG STARTS: DELETE + ... LOG 2:3 DEBUG Finished Request + + Run Keyword And Expect Error * + ... Open Browser bad.url.bad ${BROWSER} + Close All Browsers