Skip to content

Commit be64e13

Browse files
authored
Merge pull request #227 from dhlavac/send_keys_sensitive
Added possibility to don't log sensitive data with sendkeys method
2 parents 4b87e38 + cd2134e commit be64e13

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/widgetastic/browser.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -843,11 +843,12 @@ def clear(self, locator: LocatorAlias, *args, **kwargs) -> None:
843843
def is_selected(self, *args, **kwargs) -> bool:
844844
return self.element(*args, **kwargs).is_selected()
845845

846-
def send_keys(self, text: str, locator: LocatorAlias, *args, **kwargs) -> None:
846+
def send_keys(self, text: str, locator: LocatorAlias, sensitive=False, *args, **kwargs) -> None:
847847
"""Sends keys to the element. Detects the file inputs automatically.
848848
849849
Args:
850850
text: Text to be inserted to the element.
851+
sensitive: Bool, If is set to True do not log sensitive data.
851852
*args: See :py:meth:`elements`
852853
**kwargs: See :py:meth:`elements`
853854
"""
@@ -864,7 +865,7 @@ def send_keys(self, text: str, locator: LocatorAlias, *args, **kwargs) -> None:
864865
self.selenium.file_detector = LocalFileDetector()
865866
el = self.move_to_element(locator, *args, **kwargs)
866867
self.plugin.before_keyboard_input(el, text)
867-
self.logger.debug("send_keys %r to %r", text, locator)
868+
self.logger.debug("send_keys %r to %r", "*" * len(text) if sensitive else text, locator)
868869
result = el.send_keys(text)
869870
if Keys.ENTER not in text:
870871
try:

src/widgetastic/widget/input.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,19 @@ def value(self):
5454
def read(self):
5555
return self.value
5656

57-
def fill(self, value):
57+
def fill(self, value, sensitive=False):
58+
"""Fill TextInput widget with value
59+
Args:
60+
value: Text to be filled into the input.
61+
sensitive: Bool, If is set to True do not log sensitive data.
62+
"""
5863
current_value = self.value
5964
if value == current_value:
6065
return False
6166
# Clear and type everything
6267
self.browser.click(self)
6368
self.browser.clear(self)
64-
self.browser.send_keys(value, self)
69+
self.browser.send_keys(value, self, sensitive)
6570
return True
6671

6772

0 commit comments

Comments
 (0)