From 1b378e5aaa81f78b0ba7f0af79c1686a871eb153 Mon Sep 17 00:00:00 2001 From: KenanZhu <3471685733@qq.com> Date: Fri, 2 Jan 2026 17:37:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(LibLogin):=20=E4=BF=AE=E5=A4=8D=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=AA=8C=E8=AF=81=E7=A0=81=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E9=81=BF=E5=85=8D=E6=97=A0=E6=95=88=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E3=80=82=E5=B9=B6=E5=AE=8C=E5=96=84=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E9=AA=8C=E8=AF=81=E7=A0=81=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gui/ALMainWindow.py | 1 + src/operators/LibLogin.py | 23 ++++++++++------------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/gui/ALMainWindow.py b/src/gui/ALMainWindow.py index 3e90d5c..7ce4bc9 100644 --- a/src/gui/ALMainWindow.py +++ b/src/gui/ALMainWindow.py @@ -420,4 +420,5 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow): if not msg: return self.showMsg(msg) + self.__input_queue.put(msg) # put message to input queue self.MessageEdit.clear() \ No newline at end of file diff --git a/src/operators/LibLogin.py b/src/operators/LibLogin.py index 71be656..e2ec498 100644 --- a/src/operators/LibLogin.py +++ b/src/operators/LibLogin.py @@ -88,13 +88,12 @@ class LibLogin(LibOperator): captcha_img = base64.b64decode(base64_str) captcha_text = self.__ddddocr.classification(captcha_img) captcha_text = ''.join(filter(str.isalnum, captcha_text)).lower() - self._showTrace(f"识别到验证码为 : '{captcha_text}'.") + self._showTrace(f"识别到验证码为 : '{captcha_text}'") if len(captcha_text) != 4: raise Exception("识别到的验证码长度不等于 4 个字符 !") return captcha_text except Exception as e: self._showTrace(f"验证码识别失败 ! : {e}") - self.__refreshCaptcha() return "" @@ -104,15 +103,14 @@ class LibLogin(LibOperator): # manual recognize captcha try: - self._show_msg("请输入验证码:") - captcha_text = self._wait_msg(timeout=15) - self._showTrace(f"输入的验证码为 : '{captcha_text}'.") + self._showMsg("请输入验证码:") + captcha_text = self._waitMsg(timeout=15) + self._showTrace(f"输入的验证码为 : '{captcha_text}'") if len(captcha_text) != 4: raise Exception("输入的验证码长度不等于 4 个字符 !") return captcha_text except Exception as e: self._showTrace(f"输入验证码失败 ! : {e}") - self.__refreshCaptcha() return "" @@ -126,11 +124,9 @@ class LibLogin(LibOperator): self.__driver.find_element( By.ID, "loadImgId" ).click() - time.sleep(1) return True except Exception as e: self._showTrace(f"刷新验证码失败 ! : {e}") - self.__refreshCaptcha() return False @@ -139,8 +135,7 @@ class LibLogin(LibOperator): auto_captcha: bool = True ) -> str: - max_attempts = 5 - + max_attempts = 3 # the possibility of 3 times failed is less than (10%^3) for _ in range(max_attempts): if auto_captcha: captcha_text = self.__autoRecognizeCaptcha() @@ -149,7 +144,10 @@ class LibLogin(LibOperator): captcha_text = self.__manualRecognizeCaptcha() if captcha_text: return captcha_text - self._showTrace(f"验证码识别失败 {max_attempts} 次, 请检查验证码是否正确 !") + else: + if not self.__refreshCaptcha(): + return "" + self._showTrace(f"验证码识别失败 {max_attempts} 次, 达到最大尝试次数 !") return "" @@ -165,7 +163,6 @@ class LibLogin(LibOperator): return True except Exception as e: self._showTrace(f"验证码填写失败 ! : {e}") - self.__refreshCaptcha() return False @@ -200,7 +197,7 @@ class LibLogin(LibOperator): "//input[@type='button' and @value='登录']" ).click() except Exception as e: - self._showTrace(f"登录失败 ! : {e}") + self._showTrace(f"尝试登录失败 ! : {e}") continue if self._waitResponseLoad(): self._showTrace(f"用户 {username} 第 {attempt + 1} 次登录成功 !")