Exemplo n.º 1
0
 def open_browser(
     self,
     url,
     browser="firefox",
     alias=None,
     remote_url=False,
     desired_capabilities=None,
     ff_profile_dir=None,
     options=None,
     service_log_path=None,
     extra_dictionary=None,
     executable_path=None,
 ):
     self._new_creator.extra_dictionary = extra_dictionary
     browser_manager = BrowserManagementKeywords(self.ctx)
     browser_manager._make_driver = self._make_driver
     browser_manager.open_browser(
         url,
         browser=browser,
         alias=alias,
         remote_url=remote_url,
         desired_capabilities=desired_capabilities,
         ff_profile_dir=ff_profile_dir,
         options=options,
         service_log_path=service_log_path,
         executable_path=None,
     )
class KeywordArgumentsElementTest(unittest.TestCase):

    def setUp(self):
        ctx = mock()
        ctx.event_firing_webdriver = None
        ctx._browser = mock()
        ctx._drivers = mock()
        self.brorser = BrowserManagementKeywords(ctx)

    def tearDown(self):
        unstub()

    def test_open_browser(self):
        url = 'https://github.com/robotframework'
        remote_url = '"http://localhost:4444/wd/hub"'
        browser = mock()
        when(self.brorser)._make_driver('firefox', None,
                                        None, False).thenReturn(browser)
        alias = self.brorser.open_browser(url)
        self.assertEqual(alias, None)

        when(self.brorser)._make_driver('firefox', None,
                                        None, remote_url).thenReturn(browser)
        alias = self.brorser.open_browser(url, alias='None',
                                          remote_url=remote_url)
        self.assertEqual(alias, None)
Exemplo n.º 3
0
class KeywordArgumentsElementTest(unittest.TestCase):
    def setUp(self):
        ctx = mock()
        ctx.event_firing_webdriver = None
        ctx._browser = mock()
        ctx._drivers = mock()
        self.brorser = BrowserManagementKeywords(ctx)

    def tearDown(self):
        unstub()

    def test_open_browser(self):
        url = 'https://github.com/robotframework'
        remote_url = '"http://localhost:4444/wd/hub"'
        browser = mock()
        when(self.brorser)._make_driver('firefox', None, None,
                                        False).thenReturn(browser)
        alias = self.brorser.open_browser(url)
        self.assertEqual(alias, None)

        when(self.brorser)._make_driver('firefox', None, None,
                                        remote_url).thenReturn(browser)
        alias = self.brorser.open_browser(url,
                                          alias='None',
                                          remote_url=remote_url)
        self.assertEqual(alias, None)
Exemplo n.º 4
0
    def create_rpa_webdriver(self,
                             browser: str,
                             options: dict,
                             download: bool = False) -> Any:
        """Create a webdriver instance for the given browser.

        The driver will be downloaded if it does not exist when ``download`` is True.

        ``browser`` name of the browser

        ``options`` options for webdriver

        ``download`` if the driver should be download, default ``False``

        Returns an index of the webdriver session, ``None`` if webdriver
        was not initialized.
        """
        self.logger.debug("Driver options for create_rpa_webdriver: %s",
                          options)
        executable = webdriver.executable(browser, download)

        try:
            browser = browser.lower().capitalize()
            browser_management = BrowserManagementKeywords(self)
            if executable:
                index = browser_management.create_webdriver(
                    browser, **options, executable_path=executable)
            else:
                index = browser_management.create_webdriver(browser, **options)

            return index
        except WebDriverException as err:
            self.logger.info("Could not open driver: %s", err)

        return None
Exemplo n.º 5
0
 def setUp(self):
     ctx = mock()
     ctx.event_firing_webdriver = None
     ctx._browser = mock()
     ctx._drivers = mock()
     self.ctx = ctx
     self.brorser = BrowserManagementKeywords(ctx)
Exemplo n.º 6
0
 def test_bad_browser_name(self):
     ctx = mock()
     bm = BrowserManagementKeywords(ctx)
     try:
         bm._make_driver("fireox")
         self.fail("Exception not raised")
     except ValueError as e:
         self.assertEquals(str(e), "fireox is not a supported browser.")
Exemplo n.º 7
0
def test_bad_browser_name():
    ctx = mock()
    bm = BrowserManagementKeywords(ctx)
    try:
        bm._make_driver("fireox")
        raise ValueError("Exception not raised")
    except ValueError as e:
        assert str(e) == "fireox is not a supported browser."
 def test_bad_browser_name(self):
     ctx = mock()
     bm = BrowserManagementKeywords(ctx)
     try:
         bm._make_driver("fireox")
         self.fail("Exception not raised")
     except ValueError as e:
         self.assertEquals(str(e), "fireox is not a supported browser.")
 def test_parse_complex_capabilities_string(self):
     ctx = mock()
     bm = BrowserManagementKeywords(ctx)
     expected_caps = "proxyType:manual,httpProxy:IP:port"
     capabilities = bm._parse_capabilities_string(expected_caps)
     self.assertTrue("manual", capabilities["proxyType"])
     self.assertTrue("IP:port", capabilities["httpProxy"])
     self.assertTrue(2, len(capabilities))
     unstub()
 def test_create_webdriver_speed(self):
     ctx = mock()
     ctx.speed = 0.0
     browser = mock()
     when(webdriver).Chrome().thenReturn(browser)
     bm = BrowserManagementKeywords(ctx)
     bm.open_browser('http://robotframework.org/', 'chrome')
     verify(browser, times=0).__call__('_speed')
     unstub()
 def test_open_browser_speed(self):
     ctx = mock()
     ctx.speed = 5.0
     browser = mock()
     when(webdriver).Chrome().thenReturn(browser)
     bm = BrowserManagementKeywords(ctx)
     bm.open_browser('http://robotframework.org/', 'chrome')
     self.assertEqual(browser._speed, 5.0)
     unstub()
 def test_open_browser_speed(self):
     ctx = mock()
     ctx.speed = 5.0
     browser = mock()
     when(webdriver).Chrome().thenReturn(browser)
     bm = BrowserManagementKeywords(ctx)
     bm.open_browser('http://robotframework.org/', 'chrome')
     self.assertEqual(browser._speed, 5.0)
     unstub()
 def test_create_webdriver_speed(self):
     ctx = mock()
     ctx.speed = 0.0
     browser = mock()
     when(webdriver).Chrome().thenReturn(browser)
     bm = BrowserManagementKeywords(ctx)
     bm.open_browser('http://robotframework.org/', 'chrome')
     verify(browser, times=0).__call__('_speed')
     unstub()
 def test_parse_capabilities_string(self):
     ctx = mock()
     bm = BrowserManagementKeywords(ctx)
     expected_caps = "key1:val1,key2:val2"
     capabilities = bm._parse_capabilities_string(expected_caps)
     self.assertTrue("val1", capabilities["key1"])
     self.assertTrue("val2", capabilities["key2"])
     self.assertTrue(2, len(capabilities))
     unstub()
 def test_parse_complex_capabilities_string(self):
     ctx = mock()
     bm = BrowserManagementKeywords(ctx)
     expected_caps = "proxyType:manual,httpProxy:IP:port"
     capabilities = bm._parse_capabilities_string(expected_caps)
     self.assertTrue("manual", capabilities["proxyType"])
     self.assertTrue("IP:port", capabilities["httpProxy"])
     self.assertTrue(2, len(capabilities))
     unstub()
 def test_parse_capabilities_string(self):
     ctx = mock()
     bm = BrowserManagementKeywords(ctx)
     expected_caps = "key1:val1,key2:val2"
     capabilities = bm._parse_capabilities_string(expected_caps)
     self.assertTrue("val1", capabilities["key1"])
     self.assertTrue("val2", capabilities["key2"])
     self.assertTrue(2, len(capabilities))
     unstub()
Exemplo n.º 17
0
 def __init__(self):
     ctx = SeleniumLibrary(screenshot_root_directory='Results')
     AlertKeywords.__init__(self, ctx)
     BrowserManagementKeywords.__init__(self, ctx)
     ElementKeywords.__init__(self, ctx)
     FormElementKeywords.__init__(self, ctx)
     ScreenshotKeywords.__init__(self, ctx)
     SelectElementKeywords.__init__(self, ctx)
     WaitingKeywords.__init__(self, ctx)
     self.screenshot_directory = ctx.screenshot_root_directory
     self.builtIn = CRFBuiltIn()
Exemplo n.º 18
0
 def test_open_browser_speed(self):
     ctx = mock()
     ctx._drivers = mock()
     ctx.event_firing_webdriver = None
     ctx.speed = 5.0
     browser = mock()
     when(webdriver).Chrome(options=None,
                            service_log_path=None).thenReturn(browser)
     bm = BrowserManagementKeywords(ctx)
     bm.open_browser('http://robotframework.org/', 'chrome')
     self.assertEqual(browser._speed, 5.0)
     unstub()
Exemplo n.º 19
0
 def test_create_webdriver_speed(self):
     ctx = mock()
     ctx._drivers = mock()
     ctx.event_firing_webdriver = None
     ctx.speed = 0.0
     browser = mock()
     when(webdriver).Chrome(options=None,
                            service_log_path=None).thenReturn(browser)
     bm = BrowserManagementKeywords(ctx)
     bm.open_browser('http://robotframework.org/', 'chrome')
     verify(browser, times=0).__call__('_speed')
     unstub()
Exemplo n.º 20
0
class BrowserKeywords(LibraryComponent):

    def __init__(self, ctx):
        LibraryComponent.__init__(self, ctx)
        self.manager = BrowserManagementKeywords(ctx)

    @keyword
    def open_proxy_browser(self, url=None, browser='chrome', proxy_options=None, alias=None):
        index = self.drivers.get_index(alias)
        if index:
            self.info('Using existing browser from index %s.' % index)
            self.manager.switch_browser(alias)
            if is_truthy(url):
                self.manager.go_to(url)
            return index
        return self._make_new_browser(url, browser, proxy_options, alias)

    @keyword
    def create_webdriver(self, driver_name, alias=None, kwargs={}, **init_kwargs):
        pass

    def _make_new_browser(self, url, browser, proxy_options, alias=None):
        driver = self._make_proxy_driver(browser, proxy_options)
        driver = self._wrap_event_firing_webdriver(driver)
        index = self.ctx.register_driver(driver, alias)
        if is_truthy(url):
            try:
                driver.get(url)
            except Exception:
                self.debug("Opened browser with session id %s but failed to open url '%s'." % (
                    driver.session_id, url))
                raise
        self.debug('Opened browser with session id %s.' % driver.session_id)
        return index

    def _wrap_event_firing_webdriver(self, driver):
        if not self.ctx.event_firing_webdriver:
            return driver
        self.debug('Wrapping driver to event_firing_webdriver.')
        return EventFiringWebDriver(driver, self.ctx.event_firing_webdriver())

    def _make_proxy_driver(self, browser, proxy_options):
        if browser == 'Chrome':
            driver = webdriver.Chrome(options=proxy_options)
        elif browser == 'Firefox':
            driver = webdriver.Firefox(options=proxy_options)
        else:
            raise Exception("Browser Type Not Available")
        driver.set_script_timeout(self.ctx.timeout)
        driver.implicitly_wait(self.ctx.implicit_wait)
        return driver
Exemplo n.º 21
0
    def _create_webdriver(self, browser, alias, download, **kwargs):
        """Create a webdriver instance for the given browser.

        Returns an index/alias of the webdriver session,
        or ``None`` if a webdriver was not initialized.
        """
        executable = webdriver.executable(browser, download)
        if executable:
            kwargs.setdefault("executable_path", executable)

        library = BrowserManagementKeywords(self)
        browser = browser.lower().capitalize()

        return library.create_webdriver(browser, alias, **kwargs)
 def test_create_webdriver_speed(self):
     ctx = mock()
     ctx.speed = 0.0
     browser = mock()
     caps = webdriver.DesiredCapabilities.CHROME
     if SELENIUM_VERSION.major >= '3' and SELENIUM_VERSION.minor >= '8':
         when(webdriver).Chrome(desired_capabilities=caps,
                                options=None).thenReturn(browser)
     else:
         when(webdriver).Chrome(
             desired_capabilities=caps).thenReturn(browser)
     bm = BrowserManagementKeywords(ctx)
     bm.open_browser('http://robotframework.org/', 'chrome')
     verify(browser, times=0).__call__('_speed')
     unstub()
Exemplo n.º 23
0
def test_open_browser_speed():
    ctx = mock()
    ctx._drivers = mock()
    ctx.event_firing_webdriver = None
    ctx.speed = 5.0
    browser = mock()
    executable_path = "chromedriver"
    when(webdriver).Chrome(options=None,
                           service_log_path=None,
                           executable_path=executable_path).thenReturn(browser)
    bm = BrowserManagementKeywords(ctx)
    when(bm._webdriver_creator)._get_executable_path(ANY).thenReturn(
        executable_path)
    bm.open_browser("http://robotframework.org/", "chrome")
    assert browser._speed == 5.0
def test_create_webdriver_speed():
    ctx = mock()
    ctx._drivers = mock()
    ctx.event_firing_webdriver = None
    ctx.speed = 0.0
    browser = mock()
    executable_path = 'chromedriver'
    when(webdriver).Chrome(options=None,
                           service_log_path=None,
                           executable_path=executable_path).thenReturn(browser)
    bm = BrowserManagementKeywords(ctx)
    when(bm._webdriver_creator)._get_executable_path(ANY).thenReturn(
        executable_path)
    bm.open_browser('http://robotframework.org/', 'chrome')
    verify(browser, times=0).__call__('_speed')
 def test_open_browser_speed(self):
     ctx = mock()
     ctx.speed = 5.0
     browser = mock()
     caps = webdriver.DesiredCapabilities.CHROME
     if SELENIUM_VERSION.major >= '3' and SELENIUM_VERSION.minor >= '8':
         when(webdriver).Chrome(desired_capabilities=caps,
                                options=None).thenReturn(browser)
     else:
         when(webdriver).Chrome(
             desired_capabilities=caps).thenReturn(browser)
     bm = BrowserManagementKeywords(ctx)
     bm.open_browser('http://robotframework.org/', 'chrome')
     self.assertEqual(browser._speed, 5.0)
     unstub()
    def verify_browser(self, webdriver_type, browser_name, **kw):
        # todo try lambda *x: was_called = true
        ctx = mock()
        bm = BrowserManagementKeywords(ctx)
        old_init = webdriver_type.__init__
        webdriver_type.__init__ = self.mock_init

        try:
            self.was_called = False
            bm._make_browser(browser_name, **kw)
        except AttributeError:
            pass  #kinda dangerous but I'm too lazy to mock out all the set_timeout calls
        finally:
            webdriver_type.__init__ = old_init
            self.assertTrue(self.was_called)
        unstub()
Exemplo n.º 27
0
 def __init__(self,
              timeout=5.0,
              implicit_wait=0.0,
              run_on_failure='Capture Page Screenshot',
              screenshot_root_directory=None):
     self.timeout = timestr_to_secs(timeout)
     self.implicit_wait = timestr_to_secs(implicit_wait)
     self.speed = 0.0
     self.run_on_failure_keyword \
         = RunOnFailureKeywords.resolve_keyword(run_on_failure)
     self._running_on_failure_keyword = False
     self.screenshot_root_directory = screenshot_root_directory
     libraries = [
         AlertKeywords(self),
         BrowserManagementKeywords(self),
         CookieKeywords(self),
         ElementKeywords(self),
         FormElementKeywords(self),
         FrameKeywords(self),
         JavaScriptKeywords(self),
         RunOnFailureKeywords(self),
         ScreenshotKeywords(self),
         SelectElementKeywords(self),
         TableElementKeywords(self),
         WaitingKeywords(self),
         WindowKeywords(self),
         KeyboardKeywords(self)
     ]
     self._drivers = WebDriverCache()
     DynamicCore.__init__(self, libraries)
     self.ROBOT_LIBRARY_LISTENER = LibraryListener()
     self._element_finder = ElementFinder(self)
Exemplo n.º 28
0
    def __init__(self,
                 timeout=5.0,
                 implicit_wait=0.0,
                 run_on_failure='Capture Page Screenshot',
                 screenshot_root_directory=None,
                 plugins=None,
                 event_firing_webdriver=None):
        """SeleniumLibrary can be imported with several optional arguments.

        - ``timeout``:
          Default value for `timeouts` used with ``Wait ...`` keywords.
        - ``implicit_wait``:
          Default value for `implicit wait` used when locating elements.
        - ``run_on_failure``:
          Default action for the `run-on-failure functionality`.
        - ``screenshot_root_directory``:
          Location where possible screenshots are created. If not given,
          the directory where the log file is written is used.
        - ``plugins``:
          Allows extending the SeleniumLibrary with external Python classes.
        - ``event_firing_webdriver``:
          Class for wrapping Selenium with
          [https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.event_firing_webdriver.html#module-selenium.webdriver.support.event_firing_webdriver|EventFiringWebDriver]
        """
        self.timeout = timestr_to_secs(timeout)
        self.implicit_wait = timestr_to_secs(implicit_wait)
        self.speed = 0.0
        self.run_on_failure_keyword \
            = RunOnFailureKeywords.resolve_keyword(run_on_failure)
        self._running_on_failure_keyword = False
        self.screenshot_root_directory = screenshot_root_directory
        self._element_finder = ElementFinder(self)
        self._plugin_keywords = []
        libraries = [
            AlertKeywords(self),
            BrowserManagementKeywords(self),
            CookieKeywords(self),
            ElementKeywords(self),
            FormElementKeywords(self),
            FrameKeywords(self),
            JavaScriptKeywords(self),
            RunOnFailureKeywords(self),
            ScreenshotKeywords(self),
            SelectElementKeywords(self),
            TableElementKeywords(self),
            WaitingKeywords(self),
            WindowKeywords(self)
        ]
        if is_truthy(plugins):
            plugin_libs = self._parse_plugins(plugins)
            libraries = libraries + plugin_libs
        self._drivers = WebDriverCache()
        DynamicCore.__init__(self, libraries)
        self.ROBOT_LIBRARY_LISTENER = LibraryListener()
        if is_truthy(event_firing_webdriver):
            self.event_firing_webdriver = self._parse_listener(
                event_firing_webdriver)
        else:
            self.event_firing_webdriver = None
        self._running_keyword = None
Exemplo n.º 29
0
    def __init__(self,
                 timeout=5.0,
                 implicit_wait=0.0,
                 run_on_failure='Capture Page Screenshot',
                 screenshot_root_directory=None):
        """SeleniumLibrary can be imported with optional arguments.

        `timeout` is the default timeout used to wait for all waiting actions.
        It can be later set with `Set Selenium Timeout`.

        'implicit_wait' is the implicit timeout that Selenium waits when
        looking for elements.
        It can be later set with `Set Selenium Implicit Wait`.
        See `WebDriver: Advanced Usage`__ section of the SeleniumHQ documentation
        for more information about WebDriver's implicit wait functionality.

        __ http://seleniumhq.org/docs/04_webdriver_advanced.html#explicit-and-implicit-waits

        `run_on_failure` specifies the name of a keyword (from any available
        libraries) to execute when a SeleniumLibrary keyword fails. By default
        `Capture Page Screenshot` will be used to take a screenshot of the current page.
        Using the value "Nothing" will disable this feature altogether. See
        `Register Keyword To Run On Failure` keyword for more information about this
        functionality.

        `screenshot_root_directory` specifies the default root directory that screenshots should be
        stored in. If not provided the default directory will be where robotframework places its logfile.

        Examples:
        | Library `|` SeleniumLibrary `|` 15                                            | # Sets default timeout to 15 seconds                                       |
        | Library `|` SeleniumLibrary `|` 0 `|` 5                                       | # Sets default timeout to 0 seconds and default implicit_wait to 5 seconds |
        | Library `|` SeleniumLibrary `|` 5 `|` run_on_failure=Log Source               | # Sets default timeout to 5 seconds and runs `Log Source` on failure       |
        | Library `|` SeleniumLibrary `|` implicit_wait=5 `|` run_on_failure=Log Source | # Sets default implicit_wait to 5 seconds and runs `Log Source` on failure |
        | Library `|` SeleniumLibrary `|` timeout=10      `|` run_on_failure=Nothing    | # Sets default timeout to 10 seconds and does nothing on failure           |
        """
        self.timeout = timestr_to_secs(timeout)
        self.implicit_wait = timestr_to_secs(implicit_wait)
        self.speed = 0.0
        self.run_on_failure_keyword \
            = RunOnFailureKeywords.resolve_keyword(run_on_failure)
        self._running_on_failure_keyword = False
        self.screenshot_root_directory = screenshot_root_directory
        libraries = [
            AlertKeywords(self),
            BrowserManagementKeywords(self),
            RunOnFailureKeywords(self),
            ElementKeywords(self),
            TableElementKeywords(self),
            FormElementKeywords(self),
            SelectElementKeywords(self),
            JavaScriptKeywords(self),
            CookieKeywords(self),
            ScreenshotKeywords(self),
            WaitingKeywords(self)
        ]
        self._browsers = BrowserCache()
        DynamicCore.__init__(self, libraries)
        self.ROBOT_LIBRARY_LISTENER = LibraryListener()
        self.element_finder = ElementFinder(self)
        self._table_element_finder = TableElementFinder(self)
    def verify_browser(self, webdriver_type, browser_name, **kw):
        # todo try lambda *x: was_called = true
        ctx = mock()
        bm = BrowserManagementKeywords(ctx)
        old_init = webdriver_type.__init__
        webdriver_type.__init__ = self.mock_init

        try:
            self.was_called = False
            bm._make_browser(browser_name, **kw)
        except AttributeError:
            pass  #kinda dangerous but I'm too lazy to mock out all the set_timeout calls
        finally:
            webdriver_type.__init__ = old_init
            self.assertTrue(self.was_called)
        unstub()
 def test_set_selenium_timeout_only_affects_open_browsers(self):
     ctx = mock()
     ctx.timeout = 5.0
     _drivers = mock()
     ctx._drivers = _drivers
     first_browser, second_browser = mock(), mock()
     ctx._drivers.active_drivers = [first_browser, second_browser]
     bm = BrowserManagementKeywords(ctx)
     bm.set_selenium_timeout("10 seconds")
     verify(first_browser).set_script_timeout(10.0)
     verify(second_browser).set_script_timeout(10.0)
     ctx._drivers.active_drivers = []
     bm.set_selenium_timeout("20 seconds")
     verifyNoMoreInteractions(first_browser)
     verifyNoMoreInteractions(second_browser)
     unstub()
Exemplo n.º 32
0
class KeywordArgumentsElementTest(unittest.TestCase):
    def setUp(self):
        ctx = mock()
        ctx.event_firing_webdriver = None
        ctx._browser = mock()
        ctx._drivers = mock()
        self.ctx = ctx
        self.brorser = BrowserManagementKeywords(ctx)

    def tearDown(self):
        unstub()

    def test_open_browser(self):
        url = "https://github.com/robotframework"
        remote_url = '"http://localhost:4444/wd/hub"'
        browser = mock()
        when(self.brorser)._make_driver(
            "firefox", None, None, False, None, None, None
        ).thenReturn(browser)
        alias = self.brorser.open_browser(url)
        self.assertEqual(alias, None)

        when(self.brorser)._make_driver(
            "firefox", None, None, remote_url, None, None, None
        ).thenReturn(browser)
        alias = self.brorser.open_browser(url, alias="None", remote_url=remote_url)
        self.assertEqual(alias, None)

    def test_same_alias(self):
        url = "https://github.com/robotframework"
        alias = "tidii"
        driver = mock()
        driver.session_id = "foobar"
        self.ctx.driver = driver
        when(self.ctx._drivers).get_index(alias).thenReturn(1)
        when(self.ctx._drivers).switch(1).thenReturn(driver)
        self.brorser.open_browser(url=url, alias=alias)
        verify(driver, times=1).get(url)

    def test_open_browser_no_get(self):
        browser = mock()
        when(self.brorser)._make_driver(
            "firefox", None, None, False, None, None, None
        ).thenReturn(browser)
        self.brorser.open_browser()
        verify(browser, times=0).get(ANY)

    def test_same_alias_and_not_get(self):
        alias = "tidii"
        driver = mock()
        driver.session_id = "foobar"
        self.ctx.driver = driver
        when(self.ctx._drivers).get_index(alias).thenReturn(1)
        when(self.ctx._drivers).switch(1).thenReturn(driver)
        self.brorser.open_browser(alias=alias)
        verify(driver, times=0).get(ANY)
 def test_create_webdriver(self):
     ctx = mock()
     bm = BrowserManagementKeywords(ctx)
     FakeWebDriver = mock()
     driver = mock()
     when(FakeWebDriver).__call__(some_arg=1).thenReturn(driver)
     when(FakeWebDriver).__call__(some_arg=2).thenReturn(driver)
     when(ctx).register_browser(driver, 'fake1').thenReturn(0)
     webdriver.FakeWebDriver = FakeWebDriver
     try:
         index = bm.create_webdriver('FakeWebDriver', 'fake1', some_arg=1)
         verify(ctx).register_browser(driver, 'fake1')
         self.assertEqual(index, 0)
         my_kwargs = {'some_arg': 2}
         bm.create_webdriver('FakeWebDriver', 'fake2', kwargs=my_kwargs)
         verify(ctx).register_browser(driver, 'fake2')
     finally:
         del webdriver.FakeWebDriver
     unstub()
Exemplo n.º 34
0
def test_create_webdriver():
    ctx = mock()
    ctx.event_firing_webdriver = None
    bm = BrowserManagementKeywords(ctx)
    FakeWebDriver = mock()
    driver = mock()
    when(FakeWebDriver).__call__(some_arg=1).thenReturn(driver)
    when(FakeWebDriver).__call__(some_arg=2).thenReturn(driver)
    when(ctx).register_driver(driver, "fake1").thenReturn(0)
    webdriver.FakeWebDriver = FakeWebDriver
    try:
        index = bm.create_webdriver("FakeWebDriver", "fake1", some_arg=1)
        verify(ctx).register_driver(driver, "fake1")
        assert index == 0
        my_kwargs = {"some_arg": 2}
        bm.create_webdriver("FakeWebDriver", "fake2", kwargs=my_kwargs)
        verify(ctx).register_driver(driver, "fake2")
    finally:
        del webdriver.FakeWebDriver
 def test_create_webdriver(self):
     ctx = mock()
     bm = BrowserManagementKeywords(ctx)
     FakeWebDriver = mock()
     driver = mock()
     when(FakeWebDriver).__call__(some_arg=1).thenReturn(driver)
     when(FakeWebDriver).__call__(some_arg=2).thenReturn(driver)
     when(ctx).register_driver(driver, 'fake1').thenReturn(0)
     webdriver.FakeWebDriver = FakeWebDriver
     try:
         index = bm.create_webdriver('FakeWebDriver', 'fake1', some_arg=1)
         verify(ctx).register_driver(driver, 'fake1')
         self.assertEqual(index, 0)
         my_kwargs = {'some_arg': 2}
         bm.create_webdriver('FakeWebDriver', 'fake2', kwargs=my_kwargs)
         verify(ctx).register_driver(driver, 'fake2')
     finally:
         del webdriver.FakeWebDriver
     unstub()
 def test_set_selenium_timeout_only_affects_open_browsers(self):
     ctx = mock()
     ctx.timeout = 5.0
     _browsers = mock()
     ctx._browsers = _browsers
     first_browser, second_browser = mock(), mock()
     when(_browsers).get_open_browsers().thenReturn(
         [first_browser, second_browser]
     )
     bm = BrowserManagementKeywords(ctx)
     bm.set_selenium_timeout("10 seconds")
     verify(first_browser).set_script_timeout(10.0)
     verify(second_browser).set_script_timeout(10.0)
     when(_browsers).get_open_browsers().thenReturn(
         []
     )
     bm.set_selenium_timeout("20 seconds")
     verifyNoMoreInteractions(first_browser)
     verifyNoMoreInteractions(second_browser)
     unstub()
Exemplo n.º 37
0
    def __init__(self,
                 timeout=5.0,
                 implicit_wait=0.0,
                 run_on_failure='Capture Page Screenshot',
                 screenshot_root_directory=None,
                 demo=False):
        """SeleniumLibrary can be imported with several optional arguments.

        - ``timeout``:
          Default value for `timeouts` used with ``Wait ...`` keywords.
        - ``implicit_wait``:
          Default value for `implicit wait` used when locating elements.
        - ``run_on_failure``:
          Default action for the `run-on-failure functionality`.
        - ``screenshot_root_directory``:
          Location where possible screenshots are created. If not given,
          the directory where the log file is written is used.
        - ``Demo``
          Flash the element before click, input and etc actions. Set value
          True if you want it.
        """
        self.timeout = timestr_to_secs(timeout)
        self.implicit_wait = timestr_to_secs(implicit_wait)
        self.speed = 0.0
        self.run_on_failure_keyword \
            = RunOnFailureKeywords.resolve_keyword(run_on_failure)
        self._running_on_failure_keyword = False
        self.screenshot_root_directory = screenshot_root_directory
        self.demo = demo
        libraries = [
            AlertKeywords(self),
            BrowserManagementKeywords(self),
            CookieKeywords(self),
            ElementKeywords(self),
            FormElementKeywords(self),
            FrameKeywords(self),
            JavaScriptKeywords(self),
            RunOnFailureKeywords(self),
            ScreenshotKeywords(self),
            SelectElementKeywords(self),
            TableElementKeywords(self),
            WaitingKeywords(self),
            WindowKeywords(self)
        ]
        self._drivers = WebDriverCache()
        DynamicCore.__init__(self, libraries)
        self.ROBOT_LIBRARY_LISTENER = LibraryListener()
        self._element_finder = ElementFinder(self)
Exemplo n.º 38
0
def test_set_selenium_timeout_only_affects_open_browsers():
    ctx = mock()
    ctx.timeout = 5.0
    _drivers = mock()
    ctx._drivers = _drivers
    first_browser, second_browser = mock(), mock()
    ctx._drivers.active_drivers = [first_browser, second_browser]
    bm = BrowserManagementKeywords(ctx)
    bm.set_selenium_timeout("10 seconds")
    verify(first_browser).set_script_timeout(10.0)
    verify(second_browser).set_script_timeout(10.0)
    ctx._drivers.active_drivers = []
    bm.set_selenium_timeout("20 seconds")
    verifyNoMoreInteractions(first_browser)
    verifyNoMoreInteractions(second_browser)
 def test_set_selenium_timeout_only_affects_open_browsers(self):
     ctx = mock()
     ctx.timeout = 5.0
     _browsers = mock()
     ctx._browsers = _browsers
     first_browser, second_browser = mock(), mock()
     when(_browsers).get_open_browsers().thenReturn(
         [first_browser, second_browser])
     bm = BrowserManagementKeywords(ctx)
     bm.set_selenium_timeout("10 seconds")
     verify(first_browser).set_script_timeout(10.0)
     verify(second_browser).set_script_timeout(10.0)
     when(_browsers).get_open_browsers().thenReturn([])
     bm.set_selenium_timeout("20 seconds")
     verifyNoMoreInteractions(first_browser)
     verifyNoMoreInteractions(second_browser)
     unstub()
 def setUp(self):
     ctx = mock()
     ctx._browser = mock()
     self.brorser = BrowserManagementKeywords(ctx)
 def open_browser(self, host):
     logger.info('This is keyword from KeywordClass')
     url = 'http://{}:7272/'.format(host)
     browser_management = BrowserManagementKeywords(self.ctx)
     browser_management.open_browser(url, 'chrome')
 def open_browser(self, host):
     logger.info('This is keyword from KeywordClass')
     url = 'http://{}.com/'.format(host)
     browser_management = BrowserManagementKeywords(self.ctx)
     browser_management.open_browser(url, 'chrome')
 def setUp(self):
     ctx = mock()
     ctx.event_firing_webdriver = None
     ctx._browser = mock()
     ctx._drivers = mock()
     self.brorser = BrowserManagementKeywords(ctx)
 def open_browser(self, host):
     url = 'http://{}.com/'.format(host)
     browser_management = BrowserManagementKeywords(self.ctx)
     browser_management.open_browser(url, 'chrome')