# Screenshot-Tool für Mitarbeiterschulungen

## Überblick

Das automatische Screenshot-Tool erstellt systematisch Screenshots aller Seiten Ihrer Webanwendung für Schulungszwecke und Präsentationsmaterial. Es ist speziell für die Ausarbeitung von Mitarbeiterschulungen und IHK-Präsentationen entwickelt worden.

## Funktionen

### 🎯 Kernfunktionen
- **Automatische Routenerkennung**: Erkennt alle verfügbaren Seiten der Webanwendung
- **Multi-Auflösung**: Screenshots in Desktop-, Tablet- und Mobile-Auflösungen
- **Kategorisierung**: Organisiert Screenshots nach Benutzergruppen (Admin, Benutzer, Öffentlich)
- **Automatischer Login**: Meldet sich automatisch als Administrator an
- **Detaillierte Berichte**: Erstellt umfassende Berichte über erstellte Screenshots

### 📱 Unterstützte Auflösungen
- **Desktop**: 1920x1080 (Standard)
- **Tablet**: 1024x768
- **Mobile**: 375x667 (iPhone-Format)
- **Large Desktop**: 2560x1440 (4K-Display)

### 📂 Ordnerstruktur
```
docs/schulung/screenshots/
├── admin/          # Administrator-Bereich
│   ├── desktop/    # Desktop-Auflösung
│   ├── tablet/     # Tablet-Auflösung
│   └── mobile/     # Mobile-Auflösung
├── benutzer/       # Allgemeiner Benutzerbereich
│   ├── desktop/
│   ├── tablet/
│   └── mobile/
├── oeffentlich/    # Öffentlich zugängliche Seiten
│   ├── desktop/
│   ├── tablet/
│   └── mobile/
├── berichte/       # Berichte und Statistiken
└── wartung/        # Wartung und System-Tools
```

## Installation

### Voraussetzungen
- **Python 3.7+** installiert
- **Google Chrome** oder **Firefox** Browser
- **Flask-Webanwendung** läuft lokal

### 1. Abhängigkeiten installieren
```bash
pip install selenium webdriver-manager
```

### 2. ChromeDriver (automatisch)
Das Tool installiert ChromeDriver automatisch über `webdriver-manager`.

### 3. Tool-Dateien
Die folgenden Dateien sollten im `scripts/` Ordner vorhanden sein:
- `screenshot_tool.py` - Hauptprogramm
- `screenshot_config.json` - Konfigurationsdatei
- `run_screenshot_tool.ps1` - PowerShell-Skript für Windows

## Verwendung

### Methode 1: PowerShell-Skript (Windows - Empfohlen)

```powershell
# Einfache Ausführung
.\scripts\run_screenshot_tool.ps1

# Interaktiver Modus
.\scripts\run_screenshot_tool.ps1 -Interactive

# Quick-Run mit benutzerdefinierten Parametern
.\scripts\run_screenshot_tool.ps1 -QuickRun -ServerUrl "http://localhost:5000"
```

### Methode 2: Direkter Python-Aufruf

```bash
cd scripts
python screenshot_tool.py
```

### Methode 3: Mit Konfigurationsdatei

1. **Konfiguration anpassen**:
   ```json
   {
     "server": {
       "base_url": "http://localhost:5000",
       "admin_email": "admin@example.com",
       "admin_password": "admin123"
     }
   }
   ```

2. **Tool ausführen**:
   ```bash
   python screenshot_tool.py --config screenshot_config.json
   ```

## Konfiguration

### Server-Einstellungen
```json
{
  "server": {
    "base_url": "http://localhost:5000",
    "admin_email": "admin@example.com",
    "admin_password": "admin123"
  }
}
```

### Browser-Einstellungen
```json
{
  "browser": {
    "type": "chrome",              // "chrome" oder "firefox"
    "headless": true,              // Ohne GUI (für Server)
    "page_load_timeout": 15,       // Sekunden
    "screenshot_delay": 2          // Wartezeit vor Screenshot
  }
}
```

### Erweiterte Einstellungen
```json
{
  "advanced": {
    "take_full_page_screenshots": true,
    "wait_for_dynamic_content": true,
    "generate_thumbnails": true,
    "compress_images": false
  }
}
```

## Ausgabe und Berichte

### Screenshot-Dateien
- **Format**: PNG (verlustfrei)
- **Benennung**: `seitenname_auflösung_zeitstempel.png`
- **Beispiel**: `dashboard_desktop_20250116_143022.png`

### Automatische Berichte

#### 1. JSON-Bericht (`screenshot_report.json`)
```json
{
  "session_info": {
    "start_time": "2025-01-16T14:30:22",
    "duration_seconds": 125.5,
    "total_screenshots": 48
  },
  "statistics": {
    "successful_screenshots": 45,
    "failed_screenshots": 3,
    "skipped_routes": 12
  }
}
```

#### 2. Markdown-Bericht (`screenshot_bericht.md`)
- Übersichtliche Darstellung aller Ergebnisse
- Verwendungshinweise für Schulungen
- Empfehlungen für Präsentationen

## Verwendung für Schulungen

### 1. IHK-Präsentationen
- **Desktop-Screenshots** für Hauptpräsentationen verwenden
- **Admin-Ordner** für Administrative Funktionen zeigen
- **Benutzer-Ordner** für alltägliche Arbeitsabläufe

### 2. Mitarbeiterschulungen
- **Schritt-für-Schritt-Anleitungen** mit Screenshots erstellen
- **Verschiedene Auflösungen** für Responsive-Design-Demonstrationen
- **Kategorisierte Ordner** für zielgruppenspezifische Schulungen

### 3. PowerPoint-Integration
```
1. Screenshots aus docs/schulung/screenshots/ importieren
2. Desktop-Auflösung für Folien verwenden
3. Mobile-Screenshots für Responsive-Design-Folien
4. Admin-Screenshots für Administratoren-Schulungen
5. Benutzer-Screenshots für allgemeine Mitarbeiterschulungen
```

### 4. Schulungshandbuch
- Screenshots als Illustrationen verwenden
- Schritt-für-Schritt-Anleitungen visuell unterstützen
- Verschiedene Benutzerrollen demonstrieren

## Fehlerbehebung

### Häufige Probleme

#### 1. "Selenium nicht verfügbar"
```bash
pip install selenium
```

#### 2. "ChromeDriver nicht gefunden"
```bash
pip install webdriver-manager
```

#### 3. "Login fehlgeschlagen"
- Admin-Zugangsdaten in Konfiguration prüfen
- Server-URL korrekt?
- Flask-App läuft?

#### 4. "Keine Screenshots erstellt"
- Browser startet nicht → Headless-Modus deaktivieren
- Zeitüberschreitung → Timeouts erhöhen
- Routen nicht gefunden → Flask-App-Verbindung prüfen

### Debug-Modus
```bash
# Ausführlicher Logging
export SCREENSHOT_DEBUG=true
python screenshot_tool.py

# Nicht-Headless-Modus (zeigt Browser)
export SCREENSHOT_HEADLESS=false
python screenshot_tool.py
```

### Log-Dateien
- **screenshot_tool.log**: Detaillierte Ausführungslogs
- **selenium.log**: Browser-spezifische Logs

## Erweiterte Verwendung

### 1. Benutzerdefinierte Routen
```json
{
  "routes": {
    "custom_routes": [
      {
        "url": "/special-demo",
        "category": "benutzer",
        "description": "Spezielle Demo-Seite"
      }
    ]
  }
}
```

### 2. Geplante Ausführung
```bash
# Windows Task Scheduler
schtasks /create /tn "Screenshot Tool" /tr "powershell.exe .\scripts\run_screenshot_tool.ps1 -QuickRun" /sc weekly

# Linux Cron
0 2 * * 0 cd /path/to/project && python scripts/screenshot_tool.py
```

### 3. CI/CD-Integration
```yaml
# GitHub Actions Beispiel
- name: Create Screenshots
  run: |
    pip install selenium webdriver-manager
    python scripts/screenshot_tool.py --headless --output docs/screenshots
```

## Best Practices

### 1. Vor der Ausführung
- ✅ Server läuft und ist erreichbar
- ✅ Admin-Account funktioniert
- ✅ Alle Seiten sind vollständig geladen
- ✅ Test-Daten sind vorhanden

### 2. Für Schulungen
- 📸 Verwenden Sie konsistente Auflösungen
- 📚 Organisieren Sie Screenshots thematisch
- 🎯 Erstellen Sie zielgruppenspezifische Ordner
- 📝 Dokumentieren Sie jeden Screenshot

### 3. Qualitätssicherung
- 🔍 Überprüfen Sie Screenshots auf Vollständigkeit
- 🎨 Achten Sie auf einheitliche Darstellung
- 📊 Verwenden Sie Berichte zur Qualitätskontrolle
- 🔄 Automatisieren Sie regelmäßige Updates

## Support und Weiterentwicklung

### Bei Problemen
1. **Log-Dateien prüfen**: `screenshot_tool.log`
2. **Konfiguration validieren**: `screenshot_config.json`
3. **Browser-Kompatibilität testen**: Chrome vs. Firefox
4. **Netzwerk-Konnektivität prüfen**: Server erreichbar?

### Erweiterungsmöglichkeiten
- **Annotation-Tool**: Automatische Markierungen auf Screenshots
- **Video-Recording**: Automatische Bildschirmaufnahmen
- **Multi-Language**: Screenshots in verschiedenen Sprachen
- **A/B-Testing**: Vergleichsscreenshots verschiedener Versionen

---

**Erstellt für**: Mitarbeiterschulungen und IHK-Präsentationen  
**Version**: 1.0  
**Datum**: 16.01.2025  
**Kompatibilität**: Windows 10+, Python 3.7+, Chrome/Firefox 