Files
AccountForger-neuerUpload/social_networks/gmail/gmail_selectors.py
Claude Project Manager fe1bb9baaa Gmail weiter gemacht
2025-08-10 14:23:51 +02:00

136 Zeilen
4.3 KiB
Python
Originalformat Blame Verlauf

Diese Datei enthält mehrdeutige Unicode-Zeichen

Diese Datei enthält Unicode-Zeichen, die mit anderen Zeichen verwechselt werden können. Wenn du glaubst, dass das absichtlich so ist, kannst du diese Warnung ignorieren. Benutze den „Escape“-Button, um versteckte Zeichen anzuzeigen.

"""
Gmail/Google Account UI Selektoren und URLs
"""
# URLs
BASE_URL = "https://accounts.google.com/"
REGISTRATION_URL = "https://workspace.google.com/intl/de/gmail/"
LOGIN_URL = "https://accounts.google.com/ServiceLogin"
# Name Eingabe (Erster Schritt)
FIRST_NAME_INPUT = "input[name='firstName']"
LAST_NAME_INPUT = "input[name='lastName']"
NEXT_BUTTON = "button[jsname='LgbsSe']"
NEXT_BUTTON_SPAN = "span:has-text('Weiter')"
NEXT_BUTTON_MATERIAL = "div.VfPpkd-RLmnJb" # Material Design Weiter-Button
# Geburtsdatum und Geschlecht
BIRTHDAY_DAY = "input[name='day']"
BIRTHDAY_MONTH = "select[name='month']"
BIRTHDAY_YEAR = "input[name='year']"
GENDER_SELECT = "select[name='gender']"
# Gmail-Adresse erstellen
CREATE_GMAIL_RADIO = "div[data-value='createAccount']"
GMAIL_USERNAME_INPUT = "input[name='Username']"
GMAIL_USERNAME_SUGGESTION_RADIOS = "input[type='radio'][name='usernameRadio']"
# Passwort
PASSWORD_INPUT = "input[name='Passwd']"
PASSWORD_CONFIRM_INPUT = "input[name='PasswdAgain']"
# Telefonnummer Verifizierung
PHONE_INPUT = "input[id='phoneNumberId']"
PHONE_COUNTRY_SELECT = "select[data-id='countryList']"
# SMS Verifizierung
SMS_CODE_INPUT = "input[name='code']"
VERIFY_BUTTON = "button:has-text('Bestätigen')"
# Recovery Email (Optional)
RECOVERY_EMAIL_INPUT = "input[name='recoveryEmail']"
SKIP_BUTTON = "button:has-text('Überspringen')"
# Enhanced Skip Button Varianten mit 2025 Updates
SKIP_BUTTON_VARIANTS = [
# German
"button:has-text('Überspringen')",
"button:has-text('Später')",
"button:has-text('Vielleicht später')",
"button:has-text('Nicht jetzt')",
"button:has-text('Jetzt nicht')",
"button:has-text('Später hinzufügen')",
"button:has-text('Überspringen und fortfahren')",
# English
"button:has-text('Not now')",
"button:has-text('Maybe later')",
"button:has-text('Skip')",
"button:has-text('Skip for now')",
"button:has-text('I'll add it later')",
"button:has-text('Remind me later')",
"button:has-text('Continue without')",
"button:has-text('No thanks')",
# Spanish
"button:has-text('Omitir')",
"button:has-text('Ahora no')",
"button:has-text('Más tarde')",
"button:has-text('Saltar')",
# French
"button:has-text('Ignorer')",
"button:has-text('Pas maintenant')",
"button:has-text('Plus tard')",
"button:has-text('Passer')",
# Italian
"button:has-text('Ignora')",
"button:has-text('Non ora')",
"button:has-text('Salta')",
# Portuguese
"button:has-text('Pular')",
"button:has-text('Agora não')",
"button:has-text('Mais tarde')",
# Turkish
"button:has-text('Şimdi değil')",
"button:has-text('Atla')",
"button:has-text('Daha sonra')",
# Indonesian
"button:has-text('Lewati')",
"button:has-text('Nanti saja')",
# Russian (Cyrillic)
"button:has-text('Пропустить')",
"button:has-text('Не сейчас')",
"button:has-text('Позже')",
# Material Design Button Classes
".VfPpkd-LgbsSe-OWXEXe-k8QpJ:has-text('Skip')",
".VfPpkd-LgbsSe-OWXEXe-k8QpJ:has-text('Überspringen')",
# Links and generic text fallbacks
"a:has-text('Überspringen')",
"a:has-text('Not now')",
"a:has-text('Skip')",
"a:has-text('Use another verification method')",
"a:has-text('Andere Bestätigungsmethode verwenden')",
# Div buttons
"div[role='button']:has-text('Skip')",
"div[role='button']:has-text('Überspringen')",
"div[role='button']:has-text('Not now')",
# Span elements
"span:has-text('Skip for now')",
"span:has-text('Jetzt überspringen')",
# Text-based fallbacks
"text=Überspringen",
"text=Not now",
"text=Skip",
"text=Omitir",
"text=Ignorer",
"text=Ignora",
"text=Şimdi değil",
"text=Lewati",
"text=Пропустить"
]
# Nutzungsbedingungen
AGREE_BUTTON = "button:has-text('Ich stimme zu')"
TERMS_CHECKBOX = "input[type='checkbox']"
# Fehler- und Erfolgsmeldungen
ERROR_MESSAGE = "div[jsname='B34EJ'] span"
ERROR_MESSAGE_ALT = "div.LXRPh"
CAPTCHA_CONTAINER = "div.aCsJod"
# Login Seite
LOGIN_EMAIL_INPUT = "input[type='email']"
LOGIN_PASSWORD_INPUT = "input[type='password'][name='password']"
LOGIN_NEXT_BUTTON = "button:has-text('Weiter')"
# Allgemeine Elemente
LOADING_SPINNER = "div.ANuIbb"
FORM_ERROR = "div[jsname='B34EJ']"