Hides the software keyboard on the device. In iOS, use `key_name` to press a particular key, or `strategy`. In Android, no parameters are used. Args: key_name: key to press key: strategy: strategy for closing the keyboard (e.g., `tapOutsi
(self, key_name: Optional[str] = None, key: Optional[str] = None, strategy: Optional[str] = None)
| 26 | |
| 27 | class Keyboard(CanExecuteCommands, CanExecuteScripts, CanRememberExtensionPresence): |
| 28 | def hide_keyboard(self, key_name: Optional[str] = None, key: Optional[str] = None, strategy: Optional[str] = None) -> Self: |
| 29 | """Hides the software keyboard on the device. |
| 30 | |
| 31 | In iOS, use `key_name` to press |
| 32 | a particular key, or `strategy`. In Android, no parameters are used. |
| 33 | |
| 34 | Args: |
| 35 | key_name: key to press |
| 36 | key: |
| 37 | strategy: strategy for closing the keyboard (e.g., `tapOutside`) |
| 38 | |
| 39 | Returns: |
| 40 | Union['WebDriver', 'Keyboard']: Self instance |
| 41 | """ |
| 42 | ext_name = 'mobile: hideKeyboard' |
| 43 | try: |
| 44 | self.assert_extension_exists(ext_name).execute_script( |
| 45 | ext_name, {**({'keys': [key or key_name]} if key or key_name else {})} |
| 46 | ) |
| 47 | except UnknownMethodException: |
| 48 | # TODO: Remove the fallback |
| 49 | data: Dict[str, Optional[str]] = {} |
| 50 | if key_name is not None: |
| 51 | data['keyName'] = key_name |
| 52 | elif key is not None: |
| 53 | data['key'] = key |
| 54 | elif strategy is None: |
| 55 | strategy = 'tapOutside' |
| 56 | data['strategy'] = strategy |
| 57 | self.mark_extension_absence(ext_name).execute(Command.HIDE_KEYBOARD, data) |
| 58 | return self |
| 59 | |
| 60 | def is_keyboard_shown(self) -> bool: |
| 61 | """Attempts to detect whether a software keyboard is present |