fix(login): inlocuieste networkidle cu domcontentloaded + wait selector

Pagina go.bancatransilvania.ro are tracking activ (Google Analytics,
LinkedIn, Facebook, omniconvert) care face request-uri continue 30+ sec
dupa load. wait_until='networkidle' nu se atinge niciodata si page.goto
face timeout dupa 30s.

Foloseste 'domcontentloaded' si asteapta explicit link-ul Login. Elimin
si fallback-ul mort cu networkidle din login() popup (15s wait inutil
dupa input#user — daca selectorul lipseste, networkidle nici el nu vine).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-15 12:59:07 +03:00
parent da31a806af
commit f39cda3ae0

View File

@@ -451,7 +451,11 @@ class BTGoScraper:
"""Autentificare cu username si password"""
self._update_progress("Deschid pagina de login...")
logging.info("Navigare catre https://go.bancatransilvania.ro/")
self.page.goto('https://go.bancatransilvania.ro/', wait_until='networkidle')
# 'networkidle' nu se atinge niciodata: pagina face polling continuu pe
# Google Analytics / LinkedIn / Facebook pixels. Folosim 'domcontentloaded'
# si asteptam apoi explicit link-ul Login.
self.page.goto('https://go.bancatransilvania.ro/', wait_until='domcontentloaded', timeout=30000)
self.page.wait_for_selector("a:has-text('Login')", timeout=15000, state="visible")
logging.info("Pagina incarcata")
try:
@@ -483,12 +487,8 @@ class BTGoScraper:
# Asteapta ca Angular SPA sa randeze formularul de login
# (goapp.bancatransilvania.ro face un API call inainte de render)
logging.info("Astept incarcarea formularului de login...")
try:
self.login_page.wait_for_selector("input#user", timeout=15000)
self.login_page.wait_for_selector("input#user", timeout=20000, state="visible")
logging.info("[OK] Formular login incarcat")
except Exception:
logging.warning(" [WARN] Timeout pe input#user, incerc wait_for_load_state...")
self.login_page.wait_for_load_state("networkidle", timeout=15000)
# Verifica GDPR cookies si pe popup
self._dismiss_gdpr_cookies(self.login_page)