| 5 | |
| 6 | class WebElement(selenium.webdriver.remote.webelement.WebElement): |
| 7 | def uc_click( |
| 8 | self, |
| 9 | driver=None, |
| 10 | selector=None, |
| 11 | by=None, |
| 12 | reconnect_time=None, |
| 13 | tag_name=None, |
| 14 | ): |
| 15 | if driver and selector and by: |
| 16 | delayed_click = False |
| 17 | if tag_name in ["span", "button", "div", "a", "b", "input"]: |
| 18 | delayed_click = True |
| 19 | if delayed_click and ":contains" not in selector: |
| 20 | selector = js_utils.convert_to_css_selector(selector, by) |
| 21 | selector = re.escape(selector) |
| 22 | selector = js_utils.escape_quotes_if_needed(selector) |
| 23 | script = 'document.querySelector("%s").click();' % selector |
| 24 | js_utils.call_me_later(driver, script, 111) |
| 25 | else: |
| 26 | driver.js_click(selector, by=by, timeout=1) |
| 27 | else: |
| 28 | super().click() |
| 29 | driver = self._parent |
| 30 | if not reconnect_time: |
| 31 | driver.reconnect(0.5) |
| 32 | else: |
| 33 | driver.reconnect(reconnect_time) |
| 34 | |
| 35 | def uc_reconnect(self, reconnect_time=None): |
| 36 | if not reconnect_time: |