TikTok - PW Problem zur Haelfte gefixt

Dieser Commit ist enthalten in:
Claude Project Manager
2025-09-14 03:40:11 +02:00
Ursprung 51011f9e97
Commit a85b6dcdd6
2 geänderte Dateien mit 36 neuen und 24 gelöschten Zeilen

Binäre Datei nicht angezeigt.

Datei anzeigen

@ -1042,14 +1042,23 @@ class TikTokRegistration:
# Nach Code-Eingabe erscheint ein neues Passwort-Feld # Nach Code-Eingabe erscheint ein neues Passwort-Feld
# Verschiedene Selektoren für das Passwort-Feld nach Code-Eingabe # Verschiedene Selektoren für das Passwort-Feld nach Code-Eingabe
password_selectors = [ password_selectors = [
# Aktueller Selektor basierend auf Console-Output # Neue TikTok CSS-Klassen (2025)
"input[type='password'][placeholder='Passwort']", "input.css-15uxi3b-5e6d46e3--InputContainer", # Neue spezifische Klasse
"input.css-wv3bkt-InputContainer.etcs7ny1", "input.epfb2861[type='password']", # Neue zusätzliche Klasse
"input.css-wv3bkt-InputContainer", "input[class*='InputContainer'][type='password']", # Partial class match
"input.etcs7ny1[type='password']",
# Original Selektor # Generische Selektoren (stabiler)
"input[type='password'][placeholder='Passwort']", # Type + Placeholder
"input[type='password'][autocomplete='new-password']", # Type + Autocomplete
"input[placeholder='Passwort']", # Nur Placeholder
# Alte Selektoren (Fallback)
"input.css-wv3bkt-InputContainer.etcs7ny1", # Alt TikTok-Klasse
"input.css-wv3bkt-InputContainer", # Alt TikTok-Klasse
"input.etcs7ny1[type='password']", # Alt TikTok-Klasse
# Original und weitere Fallbacks
self.selectors.PASSWORD_FIELD, self.selectors.PASSWORD_FIELD,
# Fallback-Selektoren
"input[type='password']", "input[type='password']",
"input[placeholder*='Passwort']", "input[placeholder*='Passwort']",
"input[placeholder*='Password']", "input[placeholder*='Password']",
@ -1057,9 +1066,11 @@ class TikTokRegistration:
] ]
password_success = False password_success = False
for selector in password_selectors: for i, selector in enumerate(password_selectors):
if self.automation.browser.is_element_visible(selector, timeout=2000): logger.debug(f"Versuche Passwort-Selektor {i+1}/{len(password_selectors)}: {selector}")
logger.info(f"Passwort-Feld gefunden: {selector}") try:
if self.automation.browser.is_element_visible(selector, timeout=1000):
logger.info(f"✓ Passwort-Feld gefunden mit Selektor {i+1}: {selector}")
# Verwende Character-by-Character Eingabe für Passwort-Feld # Verwende Character-by-Character Eingabe für Passwort-Feld
password_success = self._fill_password_field_character_by_character(selector, account_data["password"]) password_success = self._fill_password_field_character_by_character(selector, account_data["password"])
if password_success: if password_success:
@ -1072,8 +1083,9 @@ class TikTokRegistration:
else: else:
logger.warning(f"Passwort-Validierung fehlgeschlagen: erwartet='{account_data['password']}', erhalten='{actual_value}'") logger.warning(f"Passwort-Validierung fehlgeschlagen: erwartet='{account_data['password']}', erhalten='{actual_value}'")
password_success = False password_success = False
else: except Exception as e:
logger.debug(f"Passwort-Eingabe mit Selektor {selector} fehlgeschlagen") logger.debug(f"Passwort-Selektor {i+1} fehlgeschlagen: {e}")
continue
if not password_success: if not password_success:
logger.warning("Fallback 1: Versuche UI Helper für Passwort-Eingabe") logger.warning("Fallback 1: Versuche UI Helper für Passwort-Eingabe")