From d49b6cfb302fcd6287ee9bc24a26c3bdfdd5bf06 Mon Sep 17 00:00:00 2001 From: hyeonggil <> Date: Fri, 27 Mar 2026 23:44:13 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=EB=A0=88=EC=9D=B4=EC=96=B4?= =?UTF-8?q?=20=EC=95=8C=EB=A6=BC=20=EC=B2=98=EB=A6=AC=20=EA=B0=9C=EC=84=A0?= =?UTF-8?q?=20=EB=B0=8F=20=EC=9E=90=EB=8F=99=20=ED=83=AD=20=EC=84=A0?= =?UTF-8?q?=ED=83=9D=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 초기 상호작용 전에 레이어 알림이 존재할 경우 자동으로 닫는 기능 추가 - 자동 탭 선택 시 레이어 알림이 재발할 경우 재시도 로직 구현 - 코드 가독성을 높이기 위해 주석 추가 --- lotto-runner/lotto_auto_buy.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lotto-runner/lotto_auto_buy.py b/lotto-runner/lotto_auto_buy.py index 205c2c7..120e683 100644 --- a/lotto-runner/lotto_auto_buy.py +++ b/lotto-runner/lotto_auto_buy.py @@ -228,6 +228,10 @@ def buy_lotto(driver, game_count=5): except Exception: return False + # 첫 상호작용 전에 레이어 알림이 떠 있으면 먼저 닫기 + if close_layer_alert_if_present(): + logger.info("초기 popupLayerAlert 감지 — 닫기 처리 완료") + # 모든 레이어 팝업을 JS로 직접 숨기기 (z-index 오버레이 완전 제거) driver.execute_script(""" var popups = document.querySelectorAll( @@ -239,9 +243,15 @@ def buy_lotto(driver, game_count=5): logger.info("팝업 레이어 숨김 처리 완료") # "자동" 탭 선택 — onclick 함수(selectWayTab)를 직접 호출 - driver.execute_script("selectWayTab(1);") - time.sleep(1) - time.sleep(1) + # (간헐적으로 popupLayerAlert가 클릭을 가로채므로 전/후로 닫기 처리 + 1회 재시도) + for attempt in range(2): + close_layer_alert_if_present(timeout_s=0.5) + driver.execute_script("selectWayTab(1);") + time.sleep(1) + if not close_layer_alert_if_present(timeout_s=0.5): + break + logger.info("자동 탭 선택 중 popupLayerAlert 재발 — 닫기 후 재시도") + time.sleep(0.5) # 게임 수 설정 (드롭다운에서 선택) from selenium.webdriver.support.ui import Select