Ich arbeite aktuell an einem Upload-Bot für TikTok Studio (https://www.tiktok.com/tiktokstudio/upload), um mehrere Videos automatisiert über Selenium hochzuladen. Der Bot ist bereits sehr weit entwickelt und funktioniert in fast allen Punkten – jedoch scheitert er beim finalen Klick auf den „Beitrag“-Button, obwohl dieser optisch aktiv und rot sichtbar ist.
Was bisher funktioniert:
- Login erfolgt automatisch via gespeicherten Cookies (cookies.pkl)
- Upload-Seite wird geöffnet, Upload-Bereich korrekt erkannt
- MP4-Dateien werden nacheinander per <input type="file"> hochgeladen
- Ladebalken verschwindet nach Verarbeitung → TikTok signalisiert, dass das Video bereit zum Posten ist
Das Problem:
Sobald der Upload abgeschlossen ist, wird der “Beitrag”-Button sichtbar und optisch aktiv (rot).
Doch Selenium kann ihn nicht klicken. Es erscheint ein Fehler wie:❌ Beitrag-Button konnte nicht geklickt werden: Message:
Stacktrace:
...
ElementNotInteractableException
Ich habe bereits versucht:
• element_to_be_clickable
• Scrollen mit scrollIntoView
• JS-Fallback via driver.execute_script("arguments[0].click()", button)
• Warten auf is_enabled(), is_displayed() usw.
Der Button bleibt im DOM vorhanden, sieht aktiv aus, aber scheint durch etwas blockiert oder noch nicht wirklich „klickbar“ für Selenium.
⸻
Hypothesen:
• Ein unsichtbares Overlay blockiert den Button
• Der „sichtbare“ Button ist nur Fake, und der echte kommt später
• TikTok braucht intern noch einen Validierungsprozess, der nicht abgeschlossen ist
⸻
Ziel:
Ich suche nach einer verlässlichen Möglichkeit, diesen Button zu klicken oder vorher sicherzustellen, dass wirklich alle Bedingungen erfüllt sind. Auch ein kompletter Workaround (z. B. JS-only-Lösung oder Puppeteer) wäre in Ordnung.
try:
# Beitrag-Button suchen
post_button = wait.until(EC.presence_of_element_located((By.XPATH, '//button[contains(text(),"Beitrag")]')))
# Scrollen zum Button (sichtbar machen)
driver.execute_script("arguments[0].scrollIntoView(true);", post_button)
time.sleep(1)
if post_button.is_enabled():
try:
post_button.click()
print("✅ Normal geklickt")
except Exception:
# Fallback mit JavaScript
driver.execute_script("arguments[0].click();", post_button)
print("✅ JS-Klick erfolgreich")
else:
print("❌ Button gefunden, aber nicht aktiv!")
except Exception as e:
print("❌ Beitrag-Button konnte NICHT geklickt werden:", e)
Fragen an die Community:
- Kennt jemand dieses Problem speziell bei TikTok Studio Uploads?
- Gibt es einen bewährten Selenium-Trick, mit dem man TikTok-Uploads sicher abschließen kann?
- Gibt es evtl. ein verstecktes Element, das vorher geschlossen werden muss?
- Wäre Puppeteer (Headless Chrome via NodeJS) hier zuverlässiger?