Use send_keys() to press one key at a time.
(self, selector, text, by="css selector", timeout=None)
| 1133 | self.add_text(selector, text, by=by, timeout=timeout) |
| 1134 | |
| 1135 | def press_keys(self, selector, text, by="css selector", timeout=None): |
| 1136 | """Use send_keys() to press one key at a time.""" |
| 1137 | if self.__is_cdp_swap_needed(): |
| 1138 | self.cdp.press_keys(selector, text, timeout=timeout) |
| 1139 | return |
| 1140 | self.wait_for_ready_state_complete() |
| 1141 | element = self.wait_for_element_present( |
| 1142 | selector, by=by, timeout=timeout |
| 1143 | ) |
| 1144 | if self.demo_mode: |
| 1145 | selector, by = self.__recalculate_selector(selector, by) |
| 1146 | css_selector = self.convert_to_css_selector(selector, by=by) |
| 1147 | self.__demo_mode_highlight_if_active(css_selector, By.CSS_SELECTOR) |
| 1148 | if self.recorder_mode and self.__current_url_is_recordable(): |
| 1149 | if self.get_session_storage_item("pause_recorder") == "no": |
| 1150 | css_selector = self.convert_to_css_selector(selector, by=by) |
| 1151 | time_stamp = self.execute_script("return Date.now();") |
| 1152 | origin = self.get_origin() |
| 1153 | sel_tex = [css_selector, text] |
| 1154 | action = ["pkeys", sel_tex, origin, time_stamp] |
| 1155 | self.__extra_actions.append(action) |
| 1156 | press_enter = False |
| 1157 | if text.endswith("\n"): |
| 1158 | text = text[:-1] |
| 1159 | press_enter = True |
| 1160 | for key in text: |
| 1161 | element.send_keys(key) |
| 1162 | if press_enter: |
| 1163 | if self.slow_mode or self.demo_mode: |
| 1164 | self.__demo_mode_pause_if_active(tiny=True) |
| 1165 | else: |
| 1166 | time.sleep(0.0135) |
| 1167 | element.send_keys(Keys.RETURN) |
| 1168 | if settings.WAIT_FOR_RSC_ON_PAGE_LOADS: |
| 1169 | if not self.undetectable: |
| 1170 | self.wait_for_ready_state_complete() |
| 1171 | else: |
| 1172 | time.sleep(0.15) |
| 1173 | if self.demo_mode: |
| 1174 | if press_enter: |
| 1175 | self.__demo_mode_pause_if_active() |
| 1176 | else: |
| 1177 | self.__demo_mode_pause_if_active(tiny=True) |
| 1178 | elif self.slow_mode: |
| 1179 | self.__slow_mode_pause_if_active() |
| 1180 | elif self.__needs_minimum_wait(): |
| 1181 | time.sleep(0.05) |
| 1182 | if self.undetectable: |
| 1183 | time.sleep(0.02) |
| 1184 | |
| 1185 | def submit(self, selector, by="css selector"): |
| 1186 | """Alternative to self.driver.find_element_by_*(SELECTOR).submit()""" |
no test coverage detected