From 216247a5b1755f967f0600cacc8e6b7ab76ce58d Mon Sep 17 00:00:00 2001 From: Dominik Hlavac Duran Date: Wed, 8 Mar 2023 14:59:50 +0100 Subject: [PATCH 1/2] Added possibility to don't log sensitive data with sendkeys method --- src/widgetastic/browser.py | 5 +++-- src/widgetastic/widget/input.py | 9 +++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/widgetastic/browser.py b/src/widgetastic/browser.py index a4c36d0..5e53e92 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..e66c6b1 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 From cd2134e2eaedc7af467a026454c3844e5edc1843 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 14:00:18 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/widgetastic/browser.py | 2 +- src/widgetastic/widget/input.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widgetastic/browser.py b/src/widgetastic/browser.py index 5e53e92..8d7da04 100644 --- a/src/widgetastic/browser.py +++ b/src/widgetastic/browser.py @@ -865,7 +865,7 @@ def send_keys(self, text: str, locator: LocatorAlias, sensitive=False, *args, ** 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", '*'*len(text) if sensitive else 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 e66c6b1..0368bf0 100644 --- a/src/widgetastic/widget/input.py +++ b/src/widgetastic/widget/input.py @@ -55,7 +55,7 @@ def read(self): return self.value def fill(self, value, sensitive=False): - """ Fill TextInput widget with value + """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.