Auto click KDocs login and confirm
This commit is contained in:
@@ -255,6 +255,7 @@ class KDocsUploader:
|
|||||||
for page in pages:
|
for page in pages:
|
||||||
if self._try_click_names(page, wechat_names):
|
if self._try_click_names(page, wechat_names):
|
||||||
return
|
return
|
||||||
|
self._try_confirm_login()
|
||||||
|
|
||||||
def _capture_qr_image(self) -> Optional[bytes]:
|
def _capture_qr_image(self) -> Optional[bytes]:
|
||||||
pages = self._iter_pages()
|
pages = self._iter_pages()
|
||||||
@@ -396,6 +397,14 @@ class KDocsUploader:
|
|||||||
return True
|
return True
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
try:
|
||||||
|
el = page.get_by_text(name, exact=False)
|
||||||
|
if el.is_visible(timeout=1200):
|
||||||
|
el.click()
|
||||||
|
time.sleep(1)
|
||||||
|
return True
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
try:
|
try:
|
||||||
for frame in page.frames:
|
for frame in page.frames:
|
||||||
for name in names:
|
for name in names:
|
||||||
@@ -415,10 +424,26 @@ class KDocsUploader:
|
|||||||
return True
|
return True
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
try:
|
||||||
|
el = frame.get_by_text(name, exact=False)
|
||||||
|
if el.is_visible(timeout=800):
|
||||||
|
el.click()
|
||||||
|
time.sleep(1)
|
||||||
|
return True
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
except Exception:
|
except Exception:
|
||||||
return False
|
return False
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def _try_confirm_login(self) -> bool:
|
||||||
|
confirm_names = ["确认登录", "确认登陆"]
|
||||||
|
pages = self._iter_pages()
|
||||||
|
for page in pages:
|
||||||
|
if self._try_click_names(page, confirm_names):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def _capture_dialog_image(self, page) -> Optional[bytes]:
|
def _capture_dialog_image(self, page) -> Optional[bytes]:
|
||||||
selectors = (
|
selectors = (
|
||||||
"[role='dialog'], .dialog, .modal, .popup, "
|
"[role='dialog'], .dialog, .modal, .popup, "
|
||||||
@@ -547,6 +572,8 @@ class KDocsUploader:
|
|||||||
return {"success": False, "logged_in": False, "error": self._last_error or "浏览器不可用"}
|
return {"success": False, "logged_in": False, "error": self._last_error or "浏览器不可用"}
|
||||||
if not self._open_document(doc_url):
|
if not self._open_document(doc_url):
|
||||||
return {"success": False, "logged_in": False, "error": self._last_error or "打开文档失败"}
|
return {"success": False, "logged_in": False, "error": self._last_error or "打开文档失败"}
|
||||||
|
self._ensure_login_dialog()
|
||||||
|
self._try_confirm_login()
|
||||||
logged_in = self._is_logged_in()
|
logged_in = self._is_logged_in()
|
||||||
if not self._has_saved_login_state():
|
if not self._has_saved_login_state():
|
||||||
logged_in = False
|
logged_in = False
|
||||||
|
|||||||
Reference in New Issue
Block a user