TikTok - PW Klick geht
Dieser Commit ist enthalten in:
BIN
database/accounts.db-journal
Normale Datei
BIN
database/accounts.db-journal
Normale Datei
Binäre Datei nicht angezeigt.
@ -1039,6 +1039,39 @@ class TikTokRegistration:
|
||||
|
||||
logger.info("Gebe jetzt Passwort ein (nach Code-Verifikation)")
|
||||
|
||||
# WICHTIG: Passwort-Feld muss oft erst "aktiviert" werden
|
||||
logger.info("Aktiviere Passwort-Feld durch Tab-Navigation oder direkten Click")
|
||||
|
||||
# Methode 1: Tab-Navigation vom Code-Feld zum Passwort-Feld
|
||||
try:
|
||||
# Finde das Code-Eingabefeld und navigiere mit Tab weiter
|
||||
code_field = self.automation.browser.page.locator("input[placeholder*='Code']").first
|
||||
if code_field.is_visible():
|
||||
code_field.press("Tab")
|
||||
logger.info("Tab-Navigation vom Code-Feld ausgeführt")
|
||||
self.automation.human_behavior.random_delay(0.5, 1.0)
|
||||
except:
|
||||
logger.debug("Tab-Navigation fehlgeschlagen")
|
||||
|
||||
# Methode 2: Versuche zuerst das Passwort-Feld zu "wecken" durch einen Click
|
||||
try:
|
||||
# Suche nach dem Container oder Label des Passwort-Felds
|
||||
password_container_selectors = [
|
||||
"div:has(> input[type='password'])",
|
||||
"div:has-text('Passwort'):has(input)",
|
||||
"label:has-text('Passwort')",
|
||||
"[class*='InputContainer']:has(input[type='password'])"
|
||||
]
|
||||
|
||||
for container_selector in password_container_selectors:
|
||||
if self.automation.browser.is_element_visible(container_selector, timeout=500):
|
||||
self.automation.browser.click_element(container_selector)
|
||||
logger.info(f"Passwort-Container angeklickt: {container_selector}")
|
||||
self.automation.human_behavior.random_delay(0.3, 0.5)
|
||||
break
|
||||
except:
|
||||
logger.debug("Container-Click fehlgeschlagen")
|
||||
|
||||
# Nach Code-Eingabe erscheint ein neues Passwort-Feld
|
||||
# Verschiedene Selektoren für das Passwort-Feld nach Code-Eingabe
|
||||
password_selectors = [
|
||||
@ -2162,7 +2195,15 @@ class TikTokRegistration:
|
||||
|
||||
logger.info("Verwende Character-by-Character Eingabe für Passwort-Feld")
|
||||
|
||||
# Fokussiere und lösche das Feld
|
||||
# Fokussiere das Feld mehrfach um sicherzustellen dass es aktiv ist
|
||||
element.click()
|
||||
self.automation.human_behavior.random_delay(0.2, 0.4)
|
||||
|
||||
# Doppelter Focus-Versuch falls das Feld träge reagiert
|
||||
element.focus()
|
||||
self.automation.human_behavior.random_delay(0.1, 0.2)
|
||||
|
||||
# Nochmal klicken um wirklich sicher zu sein
|
||||
element.click()
|
||||
self.automation.human_behavior.random_delay(0.1, 0.2)
|
||||
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren