const { chromium } = require('@playwright/test'); (async () => { const browser = await chromium.launch(); const page = await browser.newPage(); await page.goto('http://localhost/geograsim/App/sims/weltkueche/game.html'); await page.waitForTimeout(2500); const r = await page.evaluate(() => { // Suche im Code nach dem TUTORIAL-Array (vermutlich window-scoped oder closure) // Stattdessen: durchklicken if (typeof startTutorial !== 'function') return null; startTutorial(); const titles = []; let safety = 0; while (safety++ < 30) { const title = document.querySelector('#tutorial-overlay h2, #tutorial-overlay .tutorial-title, #tutorial-overlay [class*=title]')?.textContent; if (title) titles.push(title); // Klick auf Weiter const next = document.querySelector('#tutorial-overlay button:not([data-action="skip"]):not([class*="skip"])'); // Falls Tutorial fertig, bricht der Klick ab const before = document.getElementById('tutorial-overlay')?.style.display; try { window.nextTutorialStep && window.nextTutorialStep(); } catch (e) { break; } const after = document.getElementById('tutorial-overlay')?.style.display; if (before === '' && (after === 'none' || after === '')) { // check whether new title appeared const nt = document.querySelector('#tutorial-overlay h2, #tutorial-overlay .tutorial-title, #tutorial-overlay [class*=title]')?.textContent; if (nt === title) break; } } return { titles, count: titles.length }; }); console.log(JSON.stringify(r, null, 2)); await browser.close(); })();