From 5cf79e03609d8d83fa143d8172cab66ecdc3dd44 Mon Sep 17 00:00:00 2001 From: Xuanjie Xia <56883029+Shane-Jay@users.noreply.github.com> Date: Sat, 18 Jul 2026 19:24:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(site):=20=E6=A8=A1=E6=8B=9F=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=94=AF=E6=8C=81=E5=8B=BE=E9=80=89=E3=80=8C=E8=AE=B0?= =?UTF-8?q?=E4=BD=8F=E6=88=91/=E4=BF=9D=E6=8C=81=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E3=80=8D=E9=80=89=E9=A1=B9=EF=BC=8C=E8=8E=B7=E5=8F=96=E9=95=BF?= =?UTF-8?q?=E6=9C=9F=E4=BC=9A=E8=AF=9D=20(#6138)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helper/cookie.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/helper/cookie.py b/app/helper/cookie.py index b18a45e92..c72b191ac 100644 --- a/app/helper/cookie.py +++ b/app/helper/cookie.py @@ -52,6 +52,10 @@ class CookieHelper: "error": [ "//table[@class='main']//td[@class='text']/text()", ], + "remember": [ + '//input[@type="checkbox"][contains(@name,"remember") or contains(@id,"remember")]', + '//*[@role="checkbox"][contains(.,"保持登录") or contains(.,"记住我") or contains(.,"自动登录")]', + ], "twostep": [ '//input[@name="two_step_code"]', '//input[@name="2fa_secret"]', @@ -204,6 +208,22 @@ class CookieHelper: page.fill(username_xpath, username) # 输入密码 page.fill(password_xpath, password) + # 勾选“记住我/保持登录”等选项,获取长期会话(部分站点默认发放短期会话) + for xpath in self._SITE_LOGIN_XPATH.get("remember"): + remember_element = page.query_selector(xpath) + if not remember_element: + continue + try: + checked = remember_element.get_attribute("aria-checked") + if checked is None: + checked = "true" if remember_element.is_checked() else "false" + if checked != "true": + remember_element.click(timeout=3000) + break + except Exception as e: + # 当前候选不可操作(如隐藏元素)时继续尝试后续候选 + logger.warning(f"勾选记住登录选项失败:{str(e)},尝试下一候选") + continue # 输入二步验证码 if twostep_xpath: page.fill(twostep_xpath, otp_code)