| const { chromium } = require('playwright'); |
| const { exec } = require('child_process'); |
|
|
| async function runTest() { |
| console.log("Starting Flask server..."); |
| const server = exec('python3 app.py'); |
|
|
| |
| await new Promise(resolve => setTimeout(resolve, 3000)); |
|
|
| console.log("Launching browser..."); |
| const browser = await chromium.launch({ headless: true }); |
| const context = await browser.newContext(); |
| const page = await context.newPage(); |
|
|
| try { |
| console.log("Navigating to http://127.0.0.1:7860..."); |
| await page.goto('http://127.0.0.1:7860'); |
|
|
| |
| console.log("Filling login form..."); |
| await page.fill('#login-username', 'testuser_playwright'); |
| await page.fill('#login-password', 'password123'); |
|
|
| console.log("Submitting login..."); |
| await page.click('form#login-form button[type="submit"]'); |
|
|
| |
| console.log("Waiting for dashboard..."); |
| await page.waitForSelector('#add-item-form', { state: 'visible', timeout: 10000 }); |
| console.log("Successfully logged in/registered!"); |
|
|
| |
| await page.screenshot({ path: 'dashboard.png' }); |
| console.log("Screenshot saved to dashboard.png"); |
|
|
| } catch (error) { |
| console.error("Test failed!", error); |
| await page.screenshot({ path: 'error.png' }); |
| } finally { |
| console.log("Closing browser and server..."); |
| await browser.close(); |
| server.kill('SIGINT'); |
| } |
| } |
|
|
| runTest(); |
|
|