67 lines
2.2 KiB
JavaScript
67 lines
2.2 KiB
JavaScript
import { chromium } from 'playwright';
|
|
|
|
const browser = await chromium.launch({ headless: true });
|
|
const context = await browser.newContext({ viewport: { width: 1400, height: 900 } });
|
|
const page = await context.newPage();
|
|
|
|
const screenshotDir = 'C:/tmp/playwright_screenshots';
|
|
// Create directory via node
|
|
import { mkdirSync } from 'fs';
|
|
mkdirSync(screenshotDir, { recursive: true });
|
|
|
|
function screenshot(name) {
|
|
return page.screenshot({ path: `${screenshotDir}/${name}.png`, fullPage: true });
|
|
}
|
|
|
|
// Step 1: Navigate to fertilizer/new
|
|
console.log('\n=== Step 1: Navigating to http://localhost:3000/fertilizer/new ===');
|
|
await page.goto('http://localhost:3000/fertilizer/new');
|
|
await page.waitForLoadState('networkidle');
|
|
console.log('Current URL:', page.url());
|
|
|
|
// Check if redirected to login
|
|
if (page.url().includes('/login')) {
|
|
console.log('\n=== Step 2: Redirected to login, logging in... ===');
|
|
|
|
// Find and fill login form
|
|
await page.waitForSelector('input', { timeout: 5000 });
|
|
const inputs = await page.locator('input').all();
|
|
console.log('Found inputs:', inputs.length);
|
|
|
|
// Try different selectors for username/password
|
|
try {
|
|
await page.fill('input[name="username"]', 'akira');
|
|
} catch {
|
|
await page.fill('input[type="text"]:first-of-type', 'akira');
|
|
}
|
|
|
|
try {
|
|
await page.fill('input[name="password"]', 'keina2025');
|
|
} catch {
|
|
await page.fill('input[type="password"]', 'keina2025');
|
|
}
|
|
|
|
await screenshot('step2_login_form');
|
|
await page.click('button[type="submit"]');
|
|
await page.waitForLoadState('networkidle');
|
|
console.log('After login URL:', page.url());
|
|
|
|
// Navigate to fertilizer/new after login
|
|
await page.goto('http://localhost:3000/fertilizer/new');
|
|
await page.waitForLoadState('networkidle');
|
|
console.log('After navigate URL:', page.url());
|
|
}
|
|
|
|
await screenshot('step3_fertilizer_new');
|
|
console.log('\n=== Step 3: On fertilizer/new page ===');
|
|
console.log('URL:', page.url());
|
|
|
|
// Check page content
|
|
const pageTitle = await page.title();
|
|
console.log('Page title:', pageTitle);
|
|
const bodyText = await page.locator('body').textContent();
|
|
console.log('Body preview:', bodyText?.substring(0, 500));
|
|
|
|
await browser.close();
|
|
console.log('\nDone!');
|