From 2803ebffef847bc0435cc134b75ac7a459d5b180 Mon Sep 17 00:00:00 2001 From: Ismo Aro Date: Thu, 9 Aug 2012 09:44:54 +0300 Subject: [PATCH 1/4] Update demo/demoapp/server.py added new global variable DEFAULT_HOST for more easier way to bind to other address than 'localhost'. --- demo/demoapp/server.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/demo/demoapp/server.py b/demo/demoapp/server.py index 66bf1e6d4..08576e0c9 100644 --- a/demo/demoapp/server.py +++ b/demo/demoapp/server.py @@ -31,6 +31,7 @@ DEFAULT_PORT = 7272 +DEFAULT_HOST = 'localhost' class StoppableHttpServer(BaseHTTPServer.HTTPServer): @@ -58,16 +59,16 @@ def do_POST(self): self.do_GET() -def start_server(port=DEFAULT_PORT): +def start_server(host=DEFAULT_HOST, port=DEFAULT_PORT): print "Demo application starting on port %s" % port root = os.path.dirname(os.path.abspath(__file__)) os.chdir(root) - server = StoppableHttpServer(('localhost', int(port)), StoppableHttpRequestHandler) + server = StoppableHttpServer((host, int(port)), StoppableHttpRequestHandler) server.serve_forever() -def stop_server(port=DEFAULT_PORT): +def stop_server(host=DEFAULT_HOST, port=DEFAULT_PORT): print "Demo application on port %s stopping" % port - conn = httplib.HTTPConnection("localhost:%s" % port) + conn = httplib.HTTPConnection("%s:%s" % (host, port)) conn.request("QUIT", "/") conn.getresponse() From 2186908b47ae57325037b2a32480996e165cee5c Mon Sep 17 00:00:00 2001 From: Kevin Ormbrek Date: Mon, 10 Dec 2012 13:36:00 -0600 Subject: [PATCH 2/4] fixes #93 skip closed browsers when setting Selenium timeout --- .../keywords/_browsermanagement.py | 2 +- test/unit/keywords/test_browsermanagement.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Selenium2Library/keywords/_browsermanagement.py b/src/Selenium2Library/keywords/_browsermanagement.py index 5919f1f9d..faec2e3ab 100644 --- a/src/Selenium2Library/keywords/_browsermanagement.py +++ b/src/Selenium2Library/keywords/_browsermanagement.py @@ -342,7 +342,7 @@ def set_selenium_timeout(self, seconds): """ old_timeout = self.get_selenium_timeout() self._timeout_in_secs = robot.utils.timestr_to_secs(seconds) - for browser in self._cache.browsers: + for browser in self._cache.get_open_browsers(): browser.set_script_timeout(self._timeout_in_secs) return old_timeout diff --git a/test/unit/keywords/test_browsermanagement.py b/test/unit/keywords/test_browsermanagement.py index 6d83ad074..5569ea9d5 100644 --- a/test/unit/keywords/test_browsermanagement.py +++ b/test/unit/keywords/test_browsermanagement.py @@ -1,6 +1,7 @@ import unittest from Selenium2Library.keywords._browsermanagement import _BrowserManagementKeywords from selenium import webdriver +from mockito import * class BrowserManagementTests(unittest.TestCase): @@ -54,6 +55,21 @@ def test_create_remote_browser_with_desired_prefs(self): self.verify_browser(webdriver.Remote, "chrome", remote="http://127.0.0.1/wd/hub", desired_capabilities=expected_caps) + def test_set_selenium_timeout_only_affects_open_browsers(self): + bm = _BrowserManagementKeywords() + first_browser, second_browser = mock(), mock() + bm._cache.register(first_browser) + bm._cache.close() + verify(first_browser).quit() + bm._cache.register(second_browser) + bm.set_selenium_timeout("10 seconds") + verify(second_browser).set_script_timeout(10.0) + bm._cache.close_all() + verify(second_browser).quit() + bm.set_selenium_timeout("20 seconds") + verifyNoMoreInteractions(first_browser) + verifyNoMoreInteractions(second_browser) + def verify_browser(self , webdriver_type , browser_name, **kw): #todo try lambda *x: was_called = true From 51451cb67fb4ba0e6060f6dc31fd0507cdfee01e Mon Sep 17 00:00:00 2001 From: Ed Manlove Date: Tue, 11 Dec 2012 15:27:58 -0500 Subject: [PATCH 3/4] Added configuration file for Travis-CI. This is intented to be a first line of testing with pull requests and patches and is directly tied into Github UI. Full suite of tests are currently run by the Robot Framework Jenkins CI Server. --- .travis.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..cb826a5d8 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,16 @@ +language: python +python: + - "2.6" + - "2.7" +install: + #- pip install pep8 --use-mirrors + #- pip install pyflakes --use-mirrors + - pip install robotframework + - pip install selenium + - pip install decorator + - pip install docutils +before_script: + - "export DISPLAY=:99.0" + - "sh -e /etc/init.d/xvfb start" +script: + - python test/run_tests.py python FF \ No newline at end of file From 4e0b64a598f0d2dfec284ed9ae2e8f2e1ab945f3 Mon Sep 17 00:00:00 2001 From: Kevin Ormbrek Date: Wed, 27 Mar 2013 11:41:28 -0500 Subject: [PATCH 4/4] fix Get Selected List Label to work in IE & FF --- src/Selenium2Library/keywords/_selectelement.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Selenium2Library/keywords/_selectelement.py b/src/Selenium2Library/keywords/_selectelement.py index a1540bf16..1cc6bdf66 100644 --- a/src/Selenium2Library/keywords/_selectelement.py +++ b/src/Selenium2Library/keywords/_selectelement.py @@ -23,7 +23,7 @@ def get_selected_list_label(self, locator): locating elements. """ select = self._get_select_list(locator) - return select.first_selected_option.get_attribute('label') + return select.first_selected_option.text def get_selected_list_labels(self, locator): """Returns the visible labels of selected elements (as a list) from the select list identified by `locator`.