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:
@@ -451,7 +451,11 @@ class BTGoScraper:
|
|||||||
"""Autentificare cu username si password"""
|
"""Autentificare cu username si password"""
|
||||||
self._update_progress("Deschid pagina de login...")
|
self._update_progress("Deschid pagina de login...")
|
||||||
logging.info("Navigare catre https://go.bancatransilvania.ro/")
|
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")
|
logging.info("Pagina incarcata")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -483,12 +487,8 @@ class BTGoScraper:
|
|||||||
# Asteapta ca Angular SPA sa randeze formularul de login
|
# Asteapta ca Angular SPA sa randeze formularul de login
|
||||||
# (goapp.bancatransilvania.ro face un API call inainte de render)
|
# (goapp.bancatransilvania.ro face un API call inainte de render)
|
||||||
logging.info("Astept incarcarea formularului de login...")
|
logging.info("Astept incarcarea formularului de login...")
|
||||||
try:
|
self.login_page.wait_for_selector("input#user", timeout=20000, state="visible")
|
||||||
self.login_page.wait_for_selector("input#user", timeout=15000)
|
logging.info("[OK] Formular login incarcat")
|
||||||
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
|
# Verifica GDPR cookies si pe popup
|
||||||
self._dismiss_gdpr_cookies(self.login_page)
|
self._dismiss_gdpr_cookies(self.login_page)
|
||||||
|
|||||||
Reference in New Issue
Block a user