Rescrie complet fluxul de descarcare tranzactii pentru noul UI BT George

Modificari principale:
- Noul flux download: expand -> tranzactii -> CSV -> Genereaza -> download
- Detectie inteligenta buton Tranzactii (evita butonul Delete)
- Verificare daca primul cont e deja expandat inainte de click
- Selectie conturi cu 6 strategii fallback + debug logging
- Handler pentru cookie consent "Accept toate" si "Am inteles"
- Screenshot automat la erori de selectie cont

Documentatie:
- README: sectiuni noi pentru inregistrare Playwright si testare manuala
- CLAUDE.md: selectori actualizati pentru noul UI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-09 15:18:44 +02:00
parent e49e653e12
commit 0fff07c55b
3 changed files with 513 additions and 187 deletions

120
README.md
View File

@@ -325,12 +325,8 @@ deployment\windows\scripts\menu.ps1
- Mărește timeout: `TIMEOUT_2FA_SECONDS=180` în `.env`
- Verifică notificări activate pe telefon
### Selectors nu funcționează
Site-ul s-a schimbat. Re-generează selectors:
```bash
.venv\Scripts\activate
playwright codegen https://btgo.ro --target python
```
### Selectors nu functioneaza
Site-ul s-a schimbat. Urmeaza pasii din sectiunea **Inregistrare Manuala cu Playwright** de mai jos.
### Notificări Email nu funcționează
- Pentru Gmail: folosește App Password, nu parola normală
@@ -343,12 +339,116 @@ playwright codegen https://btgo.ro --target python
- Chat ID pentru grupuri trebuie să fie **negativ** (ex: `-1001234567890`)
- Asigură-te că botul este în grup
## Inregistrare Manuala cu Playwright (Codegen)
Cand site-ul BT George isi schimba interfata, trebuie sa reinregistrezi fluxul manual.
### 1. Porneste Playwright Codegen
```powershell
# Activeaza venv-ul
.venv\Scripts\Activate.ps1
# Porneste codegen
playwright codegen https://go.bancatransilvania.ro --target python
```
Se deschid 2 ferestre:
- **Browser** - aici faci actiunile manual
- **Playwright Inspector** - aici vezi codul Python generat
### 2. Inregistreaza Fluxul
1. Accept cookies ("Accept toate")
2. Click pe "Login" - se deschide popup
3. Completeaza username si parola
4. Click "Autentifica-te"
5. Asteapta 2FA pe telefon
6. Dupa login, click pe "Conturi"
7. **Pentru primul cont:**
- Expand card (click pe sageata)
- Click pe butonul "Tranzactii" (iconita cu grafic)
- Click pe "CSV" pentru format
- Click pe "Genereaza"
- Click pe documentul generat pentru download
8. **Pentru conturile urmatoare:**
- Click pe `#selectAccountBtn` (dropdown conturi)
- Selecteaza contul din lista
- Click pe "Genereaza"
- Download fisierul
### 3. Salveaza si Analizeaza Scriptul
- In Inspector: **Copy** sau **File > Save**
- Compara cu `btgo_scraper.py` si actualizeaza selectorii modificati
- Selectori cheie de verificat:
- Cookie consent: `get_by_role("button", name="...")`
- Username field: `get_by_placeholder("...")`
- Submit button: `get_by_role("button", name="...")`
- Account selector: `#selectAccountBtn`
- Download item: `fba-document-item`
## Testare Manuala a Scraperului
### Testare Pas cu Pas
```powershell
# 1. Activeaza venv
.venv\Scripts\Activate.ps1
# 2. Ruleaza scraper-ul
python btgo_scraper.py
```
### Verificare Output
Dupa rulare, verifica:
```powershell
# Fisiere generate
dir data\
# Trebuie sa vezi:
# - solduri_*.csv (solduri toate conturile)
# - solduri_*.json (metadata + solduri)
# - tranzactii_*.csv (cate un fisier per cont)
# - dashboard_*.png (screenshot final)
# Verifica log-ul pentru erori
type logs\scraper_*.log | Select-String -Pattern "EROARE|ERROR|Exception"
```
### Testare Doar Solduri (fara download tranzactii)
```powershell
# Seteaza variabila temporar
$env:BALANCES_ONLY = "true"
python btgo_scraper.py
```
### Debug - Screenshot-uri
Daca ceva nu merge, verifica screenshot-urile din `data/`:
- `debug_login_popup_*.png` - starea paginii de login
- `debug_dropdown_*.png` - dropdown-ul de selectare conturi (daca esueaza)
- `error_*.png` - screenshot la eroare
### Testare Notificari (fara scraping)
```powershell
# Test Telegram
python test_telegram.py
# Trimite ultimele fisiere manual
python send_notifications.py
```
## Securitate
**⚠️ IMPORTANT:**
- NU comite `.env` în git (deja în `.gitignore`)
- NU partaja screenshots/logs - conțin date sensibile
- Șterge fișierele vechi periodic:
**IMPORTANT:**
- NU comite `.env` in git (deja in `.gitignore`)
- NU partaja screenshots/logs - contin date sensibile
- Sterge fisierele vechi periodic:
```bash
# Windows