fix(login): asteapta generos splash-ul SPA + reincarca popup la nevoie
Pe masina prod (Session 0, randare software) aplicatia Angular de la goapp.bancatransilvania.ro ramane lenta pe splash-ul "Aplicatia ta de banking business" si uneori depaseste 20s -> input#user nu apare. Diagnostic confirmat: URL/titlu corecte, body gol, zero input-uri. Asteptam load state, apoi input#user cu timeout 60s; daca tot nu apare, reincarcam popup-ul o data si mai incercam. Worst case ~3 min, sub timeout-ul de 2FA. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -503,10 +503,35 @@ class BTGoScraper:
|
||||
self.login_page = popup_info.value
|
||||
logging.info("Popup/tab login deschis")
|
||||
|
||||
# Asteapta ca Angular SPA sa randeze formularul de login
|
||||
# (goapp.bancatransilvania.ro face un API call inainte de render)
|
||||
# Asteapta ca Angular SPA sa randeze formularul de login.
|
||||
# goapp.bancatransilvania.ro afiseaza intai un splash ("Aplicatia ta
|
||||
# de banking business") cat se bootstrap-eaza Angular-ul. Pe masina
|
||||
# prod (Session 0, randare software) bootstrap-ul e lent si uneori
|
||||
# depaseste timeout-ul -> asteptam generos si reincarcam la nevoie.
|
||||
logging.info("Astept incarcarea formularului de login...")
|
||||
self.login_page.wait_for_selector("input#user", timeout=20000, state="visible")
|
||||
form_loaded = False
|
||||
for attempt in range(1, 3): # 2 incercari
|
||||
try:
|
||||
self.login_page.wait_for_load_state("load", timeout=30000)
|
||||
except PlaywrightTimeout:
|
||||
pass
|
||||
try:
|
||||
self.login_page.wait_for_selector(
|
||||
"input#user", timeout=60000, state="visible"
|
||||
)
|
||||
form_loaded = True
|
||||
break
|
||||
except PlaywrightTimeout:
|
||||
if attempt == 1:
|
||||
logging.warning(
|
||||
" [WARN] Formularul nu a aparut in 60s "
|
||||
"(SPA blocat pe splash) - reincarc popup-ul..."
|
||||
)
|
||||
self.login_page.reload(wait_until="domcontentloaded")
|
||||
else:
|
||||
raise
|
||||
if not form_loaded:
|
||||
raise PlaywrightTimeout("input#user nu a aparut nici dupa reload")
|
||||
logging.info("[OK] Formular login incarcat")
|
||||
|
||||
# Verifica GDPR cookies si pe popup
|
||||
|
||||
Reference in New Issue
Block a user