diff --git a/src/widgetastic/browser.py b/src/widgetastic/browser.py index a4c36d0..8d7da04 100644 --- a/src/widgetastic/browser.py +++ b/src/widgetastic/browser.py @@ -843,11 +843,12 @@ def clear(self, locator: LocatorAlias, *args, **kwargs) -> None: def is_selected(self, *args, **kwargs) -> bool: return self.element(*args, **kwargs).is_selected() - def send_keys(self, text: str, locator: LocatorAlias, *args, **kwargs) -> None: + def send_keys(self, text: str, locator: LocatorAlias, sensitive=False, *args, **kwargs) -> None: """Sends keys to the element. Detects the file inputs automatically. Args: text: Text to be inserted to the element. + sensitive: Bool, If is set to True do not log sensitive data. *args: See :py:meth:`elements` **kwargs: See :py:meth:`elements` """ @@ -864,7 +865,7 @@ def send_keys(self, text: str, locator: LocatorAlias, *args, **kwargs) -> None: self.selenium.file_detector = LocalFileDetector() el = self.move_to_element(locator, *args, **kwargs) self.plugin.before_keyboard_input(el, text) - self.logger.debug("send_keys %r to %r", text, locator) + self.logger.debug("send_keys %r to %r", "*" * len(text) if sensitive else text, locator) result = el.send_keys(text) if Keys.ENTER not in text: try: diff --git a/src/widgetastic/widget/input.py b/src/widgetastic/widget/input.py index a818055..0368bf0 100644 --- a/src/widgetastic/widget/input.py +++ b/src/widgetastic/widget/input.py @@ -54,14 +54,19 @@ def value(self): def read(self): return self.value - def fill(self, value): + def fill(self, value, sensitive=False): + """Fill TextInput widget with value + Args: + value: Text to be filled into the input. + sensitive: Bool, If is set to True do not log sensitive data. + """ current_value = self.value if value == current_value: return False # Clear and type everything self.browser.click(self) self.browser.clear(self) - self.browser.send_keys(value, self) + self.browser.send_keys(value, self, sensitive) return True