Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Internetseite mit Anmeldung öffnen

Internetseite mit Anmeldung öffnen
20.04.2020 14:51:27
Harald
Hallo,
In einem Datenblatt habe ich mehrere Buttons, mit denen ich beim Anklicken verschiedene Internetseiten (z.B. Online-Banking) über Firefox oder Chrome öffnen möchte, dort automatisch den Benutzernamen und das Passwort eintragen lasse und die Seite dann starte.
Leider habe ich keine Ahnung, wie ich das umsetzen kann. Kann mir hier jemand helfen?
Im voraus schon vielen Dank
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Internetseite mit Anmeldung öffnen
20.04.2020 15:02:48
Zwenn
Hallo Harald,
aus VBA heraus kannst Du nur direkt auf den Internet Explorer als Browser zugreifen. Auf andere Browser geht das nur über Selenium:
https://www.selenium.dev/
Viele Grüße,
Zwenn
AW: Internetseite mit Anmeldung öffnen
20.04.2020 15:25:57
Harald
Hallo Zwenn,
vielen Dank für die schnelle Antwort.
Wie kann ich das mit dem Internet Explorer realisieren? Für mich ist es eigentlich egal, welchen Browser ich verwende.
Anzeige
AW: Internetseite mit Anmeldung öffnen
20.04.2020 16:18:52
Zwenn
Hallo Harald,
das Einloggen muss für jede Seite individuell programmiert werden, da auch jede Seite individuell programmiert wurde. Dazu muss also für jede Seite der HTML-Code analysiert werden, um darin die Elemente für die Eingabe von Benutzername, Passwort und Einlog-Button zu identifizieren.
Einlogbildschirme sind meistens allerdings recht überschaubar. Solange keine komplizierten Webtechniken zum Einsatz kommen, hängt der Aufwand also von der Anzahl der Seiten ab, die Du auf diese Weise aufrufen möchtest. Dass das Ganze sehr unsicher ist, weil jeder, der an die Excel Datei kommt sich direkt in Deine Onlinekonten einloggen kann, ist Dir vermutlich bewußt.
Onlinebanking dürfte allerdings nicht funktionieren, da dafür seit einiger Zeit eine Zwei-Faktor-Autorisierung verwendet werden muss. Z.B. bei meiner Bank verwende ich zum Einloggen die "normalen" Zugangsdaten inklusive Passwort und zusätzlich eine Foto-TAN. Letztere lässt sich nicht automatisieren.
Gib doch mal 1 oder 2 Links zu Seiten an, in die Du Dich einloggen willst.
Viele Grüße,
Zwenn
Anzeige
AW: Internetseite mit Anmeldung öffnen
21.04.2020 12:09:20
Zwenn
Hallo Harald,
hier ist ein Beispiel, wie man sich auf der Seite einloggen kann. Es ist allerdings nicht möglich zu prüfen, ob noch etwas zusätzliches gemacht werden muss, weil der Zugang nach 3 Versuchen gesperrt wird. Zwar habe ich keinen Zugang, aber wenn die meine IP-Adresse sperren gehts auch nicht mehr.
Was evtl. zusätzlich auf der angegebenen Seite gemacht werden muss, ist das Auslösen eines Keypress-Events für die beiden Eingabefelder. Es ist für beide Felder hinterlegt, aber ich habe das Auslösen jetzt (noch) nicht eingebaut.
Damit Du verstehst, was das Makro macht, müsste ich jetzt etwas ausholen. Dazu habe ich aber keine Zeit im Moment. Deshalb nur kurz grob dazu:
Wie Du sehen kannst, werden die beiden Eingabefelder über getElementByID() angesprochen. Eine ID ist (soll es sein) im HTML-Code einer Seite einmalig. Konnte ein Element nicht über seine ID selektiert werden, wirft VBA zur Laufzeit einen Fehler. Deshalb habe ich das in die Fehlerroutine gekapselt und prüfe hinterher, ob das Objekt vorhanden ist.
Der Button hingegen wird über getElementsByClassName() angesprochen. Das bezieht sich auf eine CSS-Klasse, die beliebig vielen Elementen auf einer Seite zugewiesen worden sein kann. CSS steht für Cascading Style Sheet, womit das Design der Elemente einer Seite festgelegt wird.
Bei getElementsByClassName() ergibt sich also eine Sammlung von Elementen, eine sogenannte Node Collection, während über getElementByID() gezielt auf ein ganz bestimmtes Element der Seite zugegriffen wird. Um nun auf ein bestimmtes Element einer Node Collection zuzugreifen, muss das entsprechende Element über seinen Index in der Sammlung angesprochen werden.
Alle nach dem verwendeten Kriterium gefundenen Elemente werden der Reihenfolge des Auffindens nach in die Sammlung aufgenommen. Die Zählung der Indizes beginnt dabei immer bei 0 (Null). Der Button ist auf der vorliegenden Anmeldeseite das einzige Element mit der CSS-Klasse button-right. Deshalb kann es der Objektvariablen knotenSubmit direkt über die Angabe des Index in der Sammlung ganz am Ende der Zeile übergeben werden. Das passiert über die runden Klammern (0).
Es gibt noch die Methode getElementsByTagName(), über die ebenfalls eine Node Collection aufgebaut wird. In dem Fall aus allen HTML-Elementen, die dem angegebenen HTML-Tag entsprechen. Dabei wird die gesamte HTML-Struktur zwischen dem öffnenden und dem schließenden Tag als ein HTML-Element betrachtet. Das können also auch ganze Strukturen sein, wenn z.B. innerhalb eines div-Tags weitere HTML-Elemente untergebracht sind.
Hier ist nun das Makro. Das kann man auch anders schreiben. Sowohl besser, als auch schlechter. Ich habe es aber ganz bewußt genau so gemacht, weil Du die 3 angesprochenen Elemente auf jeder Seite zum Einloggen ansprechen musst. Du musst halt "nur" rausfinden wie, bzw. über welche Kriterien.

Sub UnionInvestEinloggen()
Dim browser As Object
Dim url As String
Dim knotenBenutzername As Object
Dim knotenPasswort As Object
Dim knotenSubmit As Object
Dim benutzerName As String
Dim passWort As String
benutzerName = "Dein Benutzername"
passWort = "Dein Passwort"
url = "https://www.union-investment.de/process?action=showLogin"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.Navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
'Eingabefeld für den Benutzernamen selektieren
On Error Resume Next
Set knotenBenutzername = browser.document.getElementByID("user")
On Error GoTo 0
'Prüfen, ob das Feld selektiert werden konnte
If Not knotenBenutzername Is Nothing Then
'Wenn ja, den Benutzernamen eintragen
knotenBenutzername.Value = benutzerName
Else
'Wenn nicht, Hinweis ausgeben und Makro beenden
MsgBox "Eingabefeld für den Benutzernamen wurde nicht gefunden"
Exit Sub
End If
'Eingabefeld für das Passwort selektieren
On Error Resume Next
Set knotenPasswort = browser.document.getElementByID("pin")
On Error GoTo 0
'Prüfen, ob das Feld selektiert werden konnte
If Not knotenPasswort Is Nothing Then
'Wenn ja, den Passwort eintragen
knotenPasswort.Value = passWort
Else
'Wenn nicht, Hinweis ausgeben und Makro beenden
MsgBox "Eingabefeld für das Passwort wurde nicht gefunden"
Exit Sub
End If
'Submit-Button selektieren
Set knotenSubmit = browser.document.getElementsByClassName("button-right")(0)
'Prüfen, ob der Submit-Button selektiert werden konnte
If Not knotenSubmit Is Nothing Then
knotenSubmit.Click
Else
'Wenn nicht, Hinweis ausgeben und Makro beenden
MsgBox "Der Submit-Button wurde nicht gefunden"
Exit Sub
End If
End Sub
Die Kurzversion davon ist folgende. Allerdings ohne jegliches Abfangen von Fehlern und ohne Variablen auch nicht ohne weiteres verwendbar, wenn Events ins Spiel kommen. Du kannst hier aber die Kernfunktionalität besser nachvollziehen:

Sub UnionInvestEinloggen()
Dim browser As Object
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.Navigate "https://www.union-investment.de/process?action=showLogin"
Do Until browser.ReadyState = 4: DoEvents: Loop
'Benutzernamen eingeben
browser.document.getElementByID("user").Value = "Benutzername"
'Passwort eingeben
browser.document.getElementByID("pin").Value = "Passwort"
'Submit-Button anklicken
browser.document.getElementsByClassName("button-right")(0).Click
End Sub
Viele Grüße,
Zwenn
Anzeige
AW: Internetseite mit Anmeldung öffnen
21.04.2020 15:29:20
Harald
Hallo Zwenn,
vielen Dank für die viele Mühe, die du dir gemacht hast.
Ich werde das am Wochenende zu Hause ausprobieren.
Nochmals vielen Dank
AW: Internetseite mit Anmeldung öffnen
23.04.2020 11:59:17
Harald
Hallo Zwenn,
ich habe beide Versionen gestern ausprobiert.
Wenn ich den Button anklicke funktioniert auch fast alles korrekt - die beiden Formularfelder werden ausgefüllt, aber die Anmeldeseite schließt sich nicht, dabei bleibt das Namensfeld schon ausgefüllt.
Wenn ich den Code im Einzelschritt-Modus prüfe funktioniert alles korrekt und die Anmeldeseite schließt sich.
Woran kann das liegen?
Mfg
Harald
Anzeige
AW: Internetseite mit Anmeldung öffnen
24.04.2020 14:12:39
Zwenn
Hallo Harald,
ich habe für die beiden Eingabefelder jetzt eingebaut, dass das Keypress Event ausgelöst wird, bevor die Eingaben stattfinden. Probiere das mal aus. Wenn das nicht klappt, dann weiß ich nicht warum nicht, denn der Button selbst hat kein Event und die Eingabefelder haben jeweils nur das Keypress Event.
Bei meinen Versuchen wird im IE einfach das Feld für das Passwort wieder geleert und es kommt auch kein Hinweistext, dass die Eingegeben Daten falsch sind. Wie gesagt, probiere es mal aus:
Das um das Auslösen der Keypress-Events erweiterte Makro:

Sub UnionInvestEinloggen()
Dim browser As Object
Dim url As String
Dim knotenBenutzername As Object
Dim knotenPasswort As Object
Dim knotenSubmit As Object
Dim benutzerName As String
Dim passWort As String
benutzerName = "DeinBenutzername"
passWort = "DeinPasswort"
url = "https://www.union-investment.de/process?action=showLogin"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.navigate url
Do Until browser.readyState = 4: DoEvents: Loop
'Eingabefeld für den Benutzernamen selektieren
On Error Resume Next
Set knotenBenutzername = browser.document.getElementByID("user")
On Error GoTo 0
'Prüfen, ob das Feld selektiert werden konnte
If Not knotenBenutzername Is Nothing Then
'Wenn ja, keypress Event auslösen und den Benutzernamen eintragen
Call TriggerEvent(browser.document, knotenBenutzername, "onkeypress")
knotenBenutzername.Value = benutzerName
Else
'Wenn nicht, Hinweis ausgeben und Makro beenden
MsgBox "Eingabefeld für den Benutzernamen wurde nicht gefunden"
Exit Sub
End If
'Eingabefeld für das Passwort selektieren
On Error Resume Next
Set knotenPasswort = browser.document.getElementByID("pin")
On Error GoTo 0
'Prüfen, ob das Feld selektiert werden konnte
If Not knotenPasswort Is Nothing Then
'Wenn ja, keypress Event auslösen und das Passwort eintragen
Call TriggerEvent(browser.document, knotenPasswort, "onkeypress")
knotenPasswort.Value = passWort
Else
'Wenn nicht, Hinweis ausgeben und Makro beenden
MsgBox "Eingabefeld für das Passwort wurde nicht gefunden"
Exit Sub
End If
'Submit-Button selektieren
Set knotenSubmit = browser.document.getElementsByClassName("button-right")(0)
'Prüfen, ob der Submit-Button selektiert werden konnte
If Not knotenSubmit Is Nothing Then
knotenSubmit.Click
Else
'Wenn nicht, Hinweis ausgeben und Makro beenden
MsgBox "Der Submit-Button wurde nicht gefunden"
Exit Sub
End If
End Sub
Die folgende Sub löst ein übergebenes HTML-Event aus:

Private Sub TriggerEvent _
(htmlDocument As Object, htmlElementWithEvent As Object, eventType As String)
Dim theEvent As Object
htmlElementWithEvent.Focus
Set theEvent = htmlDocument.createEvent("HTMLEvents")
theEvent.initEvent eventType, True, False
htmlElementWithEvent.dispatchEvent theEvent
End Sub
Viele Grüße,
Zwenn
Anzeige
AW: Internetseite mit Anmeldung öffnen
26.04.2020 18:10:06
Harald
Hallo Zwenn,
vielen Dank für die Information, aber daran lag es wohl nicht.
Es ist aber nicht so schlimm - ich lasse einfach den Befehl für den Klick auf den Submit-Button weg und klicke ihn dann nach dem Öffnen der Seite von Hand an.
Hauptsache ich muss nicht alle Daten immer neu eingeben, sondern kann sie aus Excel direkt eingeben lassen.
Passwortschutz ist kein Problem, da ich die Datei nur auf einem Stick habe.
Trotzdem nochmals vielen Dank für Deine Hilfe
mfg
Harald
Anzeige
AW: Internetseite mit Anmeldung öffnen
29.04.2020 18:09:12
Harald
Hallo Zwenn,
ich habe nun herausgefunden, dass der erste Start am Tag normal funktioniert, wenn ich den Button später erneut drücke werden die Daten in die Felder eingegeben, aber die finale Seite lässt sich nur noch öffnen, wenn ich den submit-Button von Hand anklicke.
Das funktioniert auch mit den ersten beiden Versionen ohne keypress-Aktion.
Anzeige
AW: Internetseite mit Anmeldung öffnen
20.04.2020 19:11:33
Jenny
Hallo Zwenn,
habe hierzu mal eine Off-Topic Frage.
Habe irgendwas mal gelesen, dass mit der neuen Windows 10 Version 2004 auch ein neuer Browser kommen soll. Gilt das dann immer noch, bzw. kann ich meine bisherigen Makros, die auf den Browser zugreifen weiterhin 1:1 verwenden oder muss ich sie ändern?
Danke
Jenny
Anzeige
AW: Internetseite mit Anmeldung öffnen
20.04.2020 20:29:04
Zwenn
Hallo Jenny,
der "neue" Browser, den Mcrosoft mit Windows 10 ausliefert, ist der Edge Browser. Ich habe seine Entwicklung nicht ganz mitverfolgt, aber es kann sein, dass jetzt die Version mit der Chromium Engine kommt. Das ist die Render-Engine von Google.
Edge bekommt allerdings auch in der neuen Version keine COM Schnittstelle. Die ist notwendig, um ein Programm direkt via VBA Fernsteuern zu können:
https://de.wikipedia.org/wiki/Component_Object_Model
Der Internet Explorer bleibt damit der einzige Browser, mit dem es direkt aus VBA geht. Allerdings ist der IE EOF (End Of Live). Der wird seit einger Zeit nicht mehr weiter entwickelt und es gibt immer mehr Seiten, die im IE nicht mehr richtig laufen. Eine davon ist z.B. Yahoo Finance. Dieser Trend wird zunehmen, da Bootstrap und WordPress angekündigt haben, den IE in künftigen Versionen nicht mehr zu berücksichtigen:
https://www.golem.de/news/browser-bootstrap-und-wordpress-wollen-ie-support-beenden-2004-147846.html
Seiten, die keine dynamischen Inhalte haben, kann man aus VBA heraus auch direkt über MSXML auslesen. Das geht sogar um einiges schneller. Sobald aber ein iFrame, AJAX Inhalte oder sonstige Nachlade- und JavaScript-Geschichten im Spiel sind, funktioniert das nicht mehr, weil die Inhalte nicht vollständig erreicht werden können.
Im Zweifelsfall heißt das, umsteigen auf Python und Beautiful Soap oder wenn es einem mehr liegt auf Java und sowas wie WebKit. Allerdings würde ich statt Java direkt auf Kotlin setzen. Kann man Java schon, kann man beides parallel im gleichen Programm einsetzen. Neben Python schaue ich mir Kotlin gerade an.
https://de.wikipedia.org/wiki/Beautiful_Soup
https://de.wikipedia.org/wiki/Kotlin_(Programmiersprache)
https://www.ionos.de/digitalguide/websites/web-entwicklung/kotlin-tutorial/
Um die gescrapten Inhalte dann unterzubringen, bietet es sich an direkt eine entsprechende Datenbank aufzusetzen. Ich persönlich favorisiere da PostgreSQL. Aber für den Anfang spielt das eigentlich keine Rolle. Man kann auch MySQL oder wenn man eine kopierbare Datei ohne Server bevorzugt SQLight nehmen.
https://de.wikipedia.org/wiki/PostgreSQL
https://www.ionos.de/digitalguide/server/knowhow/postgresql/
https://de.wikipedia.org/wiki/MySQL
https://de.wikipedia.org/wiki/SQLite
Viele Grüße,
Zwenn
Anzeige
AW: Internetseite mit Anmeldung öffnen
20.04.2020 21:11:10
Jenny
Hallo Zwenn,
jetzt soll der Chromium Edge kommen.
Verstehe ich dich also richtig, solange trotzdem weiterhin der IE vorhanden ist und der IE auch weiterhin von der Seite unterstützt wird, brauch ich mir um meine Makros keine Sorgen machen?
Danke für die ausführliche Erklärung.
Jenny
Anzeige
AW: Internetseite mit Anmeldung öffnen
21.04.2020 00:14:39
Zwenn
Hallo Jenny,
so sehe ich es, ja. Allerdings lässt sich schwer abschätzen, wie lange der IE noch die von Dir in Deinen Makros angesprochenen Seiten verarbeiten kann. Noch schwerwiegender finde ich aber, dass sich nicht abschätzen lässt, wie lange Microsoft es noch für sinnvoll hält den IE mit auszuliefern.
Ich habe keine Ahnung, wie tief Komponenten des IE noch ins Windows Betriebssystem integriert sind. Unter XP konnte man den IE z.B. gar nicht wirklich deinstallieren, weil dann andere Sachen gar nicht mehr funktioniert hätten.
Aber da wird uns direkt in den nächsten Tagen nix ins Haus stehen. Das ist ein schleichender Prozess, der vermutlich noch etwas dauert. Man kann eben nur nicht sagen, wie lange "etwas" noch ist, bis es unerträglich wird über den IE etwas aus einer Seite auslesen zu wollen. Ich nutze den aber nach wie vor auch selbst noch dafür. Aber wie gesagt, ich schaue mich nach Alternativen um. Das hat allerdings auch noch andere Gründe, die etwas damit zu tun haben, wie ich die gewonnenen Daten verarbeiten möchte.
Viele Grüße,
Zwenn
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Internetseite mit Anmeldung öffnen


Schritt-für-Schritt-Anleitung

Um eine Internetseite mit Anmeldung über Excel VBA zu öffnen, kannst du den Internet Explorer verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei)" und wähle Einfügen > Modul.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub InternetseiteEroeffnen()
        Dim browser As Object
        Dim url As String
        Dim benutzername As String
        Dim passwort As String
    
        benutzername = "DeinBenutzername"
        passwort = "DeinPasswort"
        url = "https://www.deine-internetseite.de/login"
    
        'Internet Explorer initialisieren
        Set browser = CreateObject("internetexplorer.application")
        browser.Visible = True
        browser.Navigate url
    
        'Warten, bis die Seite geladen ist
        Do Until browser.ReadyState = 4: DoEvents: Loop
    
        'Benutzernamen und Passwort eingeben
        browser.document.getElementById("user").Value = benutzername
        browser.document.getElementById("pin").Value = passwort
    
        'Submit-Button klicken
        browser.document.getElementsByClassName("button-right")(0).Click
    End Sub
  4. Makro ausführen: Kehre zu Excel zurück und führe das Makro aus.


Häufige Fehler und Lösungen

  • Excel-Button nicht mehr anklickbar: Wenn der Button in Excel nicht mehr anklickbar ist, könnte es daran liegen, dass der Internet Explorer im Hintergrund läuft. Stelle sicher, dass alle Objekte korrekt freigegeben werden.

  • Eingabefelder nicht gefunden: Achte darauf, dass die IDs der Eingabefelder auf der Website korrekt sind. Du kannst die IDs im HTML-Code der Seite überprüfen.

  • Seite schließt sich nicht nach dem Klick: Manchmal müssen Keypress-Events ausgelöst werden. Füge eine Routine hinzu, die dies vor dem Ausfüllen der Felder durchführt.


Alternative Methoden

Wenn du andere Browser wie Chrome oder Edge verwenden möchtest, kannst du das Selenium-Framework nutzen. Hier ist ein Beispiel, um Google Chrome mit VBA zu steuern:

Dim driver As New WebDriver
driver.Start "chrome"
driver.Get "https://www.deine-internetseite.de/login"

Für die Verwendung von Selenium musst du die entsprechenden Bibliotheken installieren und einbinden.


Praktische Beispiele

Hier ist ein Beispiel, wie du den Benutzernamen und das Passwort in der URL übergeben kannst, um dich automatisch anzumelden:

Dim url As String
url = "https://www.deine-internetseite.de/login?user=DeinBenutzername&pass=DeinPasswort"

Beachte, dass das Übergeben von benutzername und passwort in url übergeben Sicherheitsrisiken birgt und nicht empfohlen wird, insbesondere bei sensiblen Daten.


Tipps für Profis

  • Sichere deine Passwörter: Lagere sensible Informationen wie Passwörter in einer sicheren Umgebung und verwende keine Klartext-Passwörter im Code.

  • Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung in deinem VBA-Code, um unerwartete Probleme zu vermeiden.

  • Browser Automatisierung: Wenn du komplexere Webseiten steuern möchtest, erwäge den Einsatz von Selenium, um die Möglichkeiten der Browserautomatisierung zu erweitern.


FAQ: Häufige Fragen

1. Kann ich auch andere Browser wie Chrome oder Edge verwenden?
Ja, du kannst CreateObject( internetexplorer.application ) chrome verwenden, um Chrome zu steuern, benötigst jedoch zusätzliche Bibliotheken wie Selenium.

2. Warum funktioniert das Einloggen bei Online-Banking nicht?
Online-Banking-Seiten verwenden häufig Zwei-Faktor-Authentifizierung, die nicht automatisiert werden kann. Zudem gibt es Sicherheitsvorkehrungen, die das Ausfüllen von Formularen über VBA erschweren.

3. Wie kann ich die Sichtbarkeit des Browsers steuern?
Setze browser.Visible = True im Code, um den Browser sichtbar zu machen. Wenn du die Automatisierung im Hintergrund laufen lassen möchtest, setze es auf False.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige