Одно-кликовая отправка: кнопка «Отправить отклик» после генерации, /send-now, скриншот результата
This commit is contained in:
1 parent
a79be642f0
commit
40c2c86452
3 files changed
+124
-22
No files matched your search
+31
-8
@@ -164,9 +164,10 @@ def _save_screenshot(page, screenshot_dir, vid):
|
||||
|
||||
|
||||
def open_response_page(account_dir, user, account, vacancy, message,
|
||||
resume_id=None, screenshot_dir=None):
|
||||
"""Открывает вакансию, жмёт «Откликнуться», выбирает резюме, вставляет текст,
|
||||
делает скриншот. Возвращает (ok, note, screenshot_path)."""
|
||||
resume_id=None, screenshot_dir=None, submit=False):
|
||||
"""Открывает вакансию, жмёт «Откликнуться», выбирает резюме, вставляет текст.
|
||||
При submit=True дополнительно жмёт «Отправить» и снимает скриншот результата.
|
||||
Возвращает (ok, note, screenshot_path)."""
|
||||
key = (user, account)
|
||||
# Закрываем предыдущую страницу этого аккаунта
|
||||
prev = _pages.pop(key, None)
|
||||
@@ -222,10 +223,32 @@ def open_response_page(account_dir, user, account, vacancy, message,
|
||||
except Exception:
|
||||
continue
|
||||
|
||||
if not filled:
|
||||
shot = _save_screenshot(page, screenshot_dir, vacancy["id"])
|
||||
return False, "Не нашёл поле сообщения — проверьте скриншот", shot
|
||||
|
||||
# Одно-кликовый режим: сразу жмём «Отправить»
|
||||
if submit:
|
||||
submitted = False
|
||||
for sel in SUBMIT_BUTTONS:
|
||||
try:
|
||||
btn = page.locator(sel).first
|
||||
if btn.is_visible(timeout=3000):
|
||||
btn.click()
|
||||
submitted = True
|
||||
break
|
||||
except Exception:
|
||||
continue
|
||||
if not submitted:
|
||||
shot = _save_screenshot(page, screenshot_dir, vacancy["id"])
|
||||
return False, "Не нашёл кнопку «Отправить» — проверьте скриншот", shot
|
||||
# Ждём подтверждение и снимаем скриншот результата
|
||||
page.wait_for_timeout(2500)
|
||||
shot = _save_screenshot(page, screenshot_dir, vacancy["id"])
|
||||
return True, "Отклик отправлен", shot
|
||||
|
||||
shot = _save_screenshot(page, screenshot_dir, vacancy["id"])
|
||||
if filled:
|
||||
return True, "Текст вставлен. Проверьте скриншот и нажмите «Отправить»", shot
|
||||
return False, "Не нашёл поле сообщения — проверьте скриншот", shot
|
||||
return True, "Текст вставлен. Проверьте скриншот и нажмите «Отправить»", shot
|
||||
|
||||
|
||||
def confirm_send(user, account, vid):
|
||||
@@ -270,10 +293,10 @@ def close_context(user, account):
|
||||
# ---------- Публичные обёртки (можно вызывать из любого потока) ----------
|
||||
|
||||
def browser_open(account_dir, user, account, vacancy, message,
|
||||
resume_id=None, screenshot_dir=None):
|
||||
resume_id=None, screenshot_dir=None, submit=False):
|
||||
return run_in_browser(lambda: open_response_page(
|
||||
account_dir, user, account, vacancy, message,
|
||||
resume_id=resume_id, screenshot_dir=screenshot_dir))
|
||||
resume_id=resume_id, screenshot_dir=screenshot_dir, submit=submit))
|
||||
|
||||
|
||||
def browser_send(user, account, vid):
|
||||
|
||||
Reference in new issue
Block a user