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()
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 _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)