예제 #1
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
 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_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()
예제 #4
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
예제 #5
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)