def set_browser_implicit_wait(self, value: timedelta): """Sets the implicit wait value used by Selenium. Same as `Set Selenium Implicit Wait` but only affects the current browser. """ self.driver.implicitly_wait(_convert_timeout(value))
def set_selenium_speed(self, value: timedelta) -> str: """Sets the delay that is waited after each Selenium command. The value can be given as a number that is considered to be seconds or as a human-readable string like ``1 second``. The previous value is returned and can be used to restore the original value later if needed. See the `Selenium Speed` section above for more information. Example: | `Set Selenium Speed` | 0.5 seconds | """ old_speed = self.get_selenium_speed() self.ctx.speed = _convert_timeout(value) for driver in self.drivers.active_drivers: self._monkey_patch_speed(driver) return old_speed
def set_selenium_timeout(self, value: timedelta) -> str: """Sets the timeout that is used by various keywords. The value can be given as a number that is considered to be seconds or as a human-readable string like ``1 second``. The previous value is returned and can be used to restore the original value later if needed. See the `Timeout` section above for more information. Example: | ${orig timeout} = | `Set Selenium Timeout` | 15 seconds | | `Open page that loads slowly` | | `Set Selenium Timeout` | ${orig timeout} | """ old_timeout = self.get_selenium_timeout() self.ctx.timeout = _convert_timeout(value) for driver in self.drivers.active_drivers: driver.set_script_timeout(self.ctx.timeout) return old_timeout
def set_selenium_implicit_wait(self, value: timedelta) -> str: """Sets the implicit wait value used by Selenium. The value can be given as a number that is considered to be seconds or as a human-readable string like ``1 second``. The previous value is returned and can be used to restore the original value later if needed. This keyword sets the implicit wait for all opened browsers. Use `Set Browser Implicit Wait` to set it only to the current browser. See the `Implicit wait` section above for more information. Example: | ${orig wait} = | `Set Selenium Implicit Wait` | 10 seconds | | `Perform AJAX call that is slow` | | `Set Selenium Implicit Wait` | ${orig wait} | """ old_wait = self.get_selenium_implicit_wait() self.ctx.implicit_wait = _convert_timeout(value) for driver in self.drivers.active_drivers: driver.implicitly_wait(self.ctx.implicit_wait) return old_wait
def __init__( self, timeout=timedelta(seconds=5), implicit_wait=timedelta(seconds=0), run_on_failure="Capture Page Screenshot", screenshot_root_directory: Optional[str] = None, plugins: Optional[str] = None, event_firing_webdriver: Optional[str] = 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``: Path to folder where possible screenshots are created or EMBED. See `Set Screenshot Directory` keyword for further details about EMBED. 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 = _convert_timeout(timeout) self.implicit_wait = _convert_timeout(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._resolve_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), ] self.ROBOT_LIBRARY_LISTENER = LibraryListener() self._running_keyword = None self.event_firing_webdriver = None if is_truthy(event_firing_webdriver): self.event_firing_webdriver = self._parse_listener( event_firing_webdriver) self._plugins = [] if is_truthy(plugins): plugin_libs = self._parse_plugins(plugins) self._plugins = plugin_libs libraries = libraries + plugin_libs self._drivers = WebDriverCache() DynamicCore.__init__(self, libraries)