| 888 | "arguments[0].dispatchEvent(new Event('blur'));", field) |
| 889 | |
| 890 | def fill_input( |
| 891 | self, field, field_content, input_keys=False, |
| 892 | key_after_input=Keys.ARROW_DOWN |
| 893 | ): |
| 894 | for attempt in range(0, 3): |
| 895 | try: |
| 896 | field.click() |
| 897 | break |
| 898 | except Exception as e: |
| 899 | time.sleep(.2) |
| 900 | if attempt == 2: |
| 901 | raise e |
| 902 | |
| 903 | # Use send keys if input_keys true, else use javascript to set content |
| 904 | if input_keys: |
| 905 | # Clear the existing content first |
| 906 | self.clear_edit_box(field) |
| 907 | # Send the keys one by one. |
| 908 | [field.send_keys(c) for c in str(field_content)] |
| 909 | else: |
| 910 | self.driver.execute_script("arguments[0].value = arguments[1]", |
| 911 | field, field_content) |
| 912 | # keycode 40 is for arrow down |
| 913 | self.js_send_key(field, Keys.ARROW_DOWN) |
| 914 | |
| 915 | if key_after_input: |
| 916 | self.js_send_key(field, key_after_input) |
| 917 | |
| 918 | def fill_input_by_field_name(self, field_name, field_content, |
| 919 | input_keys=False, |