Angiin

fix: verify-code 前清空输入框,防止重试时验证码追加导致输入码错误

@@ -214,9 +214,21 @@ def submit_phone_code(page: Page, code: str) -> bool: @@ -214,9 +214,21 @@ def submit_phone_code(page: Page, code: str) -> bool:
214 Returns: 214 Returns:
215 True 登录成功,False 失败(超时或验证码错误)。 215 True 登录成功,False 失败(超时或验证码错误)。
216 """ 216 """
217 - # 点击验证码输入框逐字输入 217 + # 点击验证码输入框,先清空已有内容(防止重试时追加导致验证码错误),再逐字输入
218 page.click_element(CODE_INPUT) 218 page.click_element(CODE_INPUT)
219 sleep_random(300, 500) 219 sleep_random(300, 500)
  220 + page.evaluate(
  221 + f"""(() => {{
  222 + const el = document.querySelector({json.dumps(CODE_INPUT)});
  223 + if (el && el.value) {{
  224 + const setter = Object.getOwnPropertyDescriptor(
  225 + window.HTMLInputElement.prototype, 'value'
  226 + ).set;
  227 + setter.call(el, '');
  228 + el.dispatchEvent(new Event('input', {{ bubbles: true }}));
  229 + }}
  230 + }})()"""
  231 + )
220 page.type_text(code, delay_ms=100) 232 page.type_text(code, delay_ms=100)
221 sleep_random(500, 800) 233 sleep_random(500, 800)
222 234