feat: 레이어 알림 처리 개선 및 자동 탭 선택 로직 수정

- 초기 상호작용 전에 레이어 알림이 존재할 경우 자동으로 닫는 기능 추가
- 자동 탭 선택 시 레이어 알림이 재발할 경우 재시도 로직 구현
- 코드 가독성을 높이기 위해 주석 추가
This commit is contained in:
hyeonggil
2026-03-27 23:44:13 +09:00
parent 384b9aa931
commit d49b6cfb30

View File

@@ -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