Füge Unterstützung für das Akzeptieren von Cookie-Zustimmungen hinzu: Implementiere eine Funktion, die verschiedene Consent-Dialoge automatisch akzeptiert.
This commit is contained in:
@@ -34,13 +34,29 @@ async function loginDirect(email, password) {
|
||||
}
|
||||
|
||||
async function loginWithBrowser(email, password) {
|
||||
const browser = await chromium.launch({ headless: true })
|
||||
const browser = await chromium.launch({ headless: true, args: ['--disable-dev-shm-usage'] })
|
||||
try {
|
||||
const page = await browser.newPage()
|
||||
// Das myTT-CAPTCHA wird erst nach dem Laden der Seite erzeugt. Der Ablauf
|
||||
// entspricht der erprobten Integration im Trainingstagebuch.
|
||||
const acceptConsentDialog = async (waitMs = 0) => {
|
||||
if (waitMs) await page.waitForTimeout(waitMs)
|
||||
for (const selector of [
|
||||
'#onetrust-accept-btn-handler', 'button:has-text("Alle akzeptieren")',
|
||||
'button:has-text("Akzeptieren")', 'button:has-text("Einverstanden")',
|
||||
'button:has-text("Zustimmen")', '[data-testid="accept-button"]', '.cmp-accept-all', '.accept-all-btn'
|
||||
]) {
|
||||
try {
|
||||
const button = page.locator(selector).first()
|
||||
if (await button.count()) { await button.click({ timeout: 2_500 }); await page.waitForTimeout(800); return true }
|
||||
} catch { /* try next CMP selector */ }
|
||||
}
|
||||
return false
|
||||
}
|
||||
await page.goto(BASE_URL, { waitUntil: 'domcontentloaded', timeout: 30_000 }).catch(() => {})
|
||||
if (!await acceptConsentDialog()) await acceptConsentDialog(2_500)
|
||||
await page.goto(`${BASE_URL}/login?next=%2F`, { waitUntil: 'domcontentloaded', timeout: 45_000 })
|
||||
if (!await acceptConsentDialog()) await acceptConsentDialog(1_500)
|
||||
await page.locator('input[name="email"]').fill(email)
|
||||
await page.locator('input[name="password"]').fill(password)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user