ether-admin/test-login.cjs

63 lines
1.8 KiB
JavaScript

const puppeteer = require('puppeteer');
(async () => {
console.log('启动浏览器...');
const browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
page.on('console', msg => console.log('Browser console:', msg.text()));
page.on('pageerror', error => console.log('Browser error:', error.message));
console.log('导航到登录页...');
await page.goto('http://127.0.0.1:5175/login', { waitUntil: 'networkidle0' });
await new Promise(r => setTimeout(r, 2000));
const title = await page.title();
console.log('页面标题:', title);
await page.screenshot({ path: '/tmp/login-page.png' });
console.log('已截图: /tmp/login-page.png');
const usernameInput = await page.$('input');
console.log('找到输入框:', usernameInput ? '是' : '否');
if (usernameInput) {
const inputs = await page.$$('input');
console.log('输入框数量:', inputs.length);
if (inputs.length >= 2) {
await inputs[0].type('admin');
await inputs[1].type('Admin@123');
await page.screenshot({ path: '/tmp/before-login.png' });
const buttons = await page.$$('button');
console.log('按钮数量:', buttons.length);
for (let i = 0; i < buttons.length; i++) {
const text = await buttons[i].textContent();
console.log(`按钮 ${i}:`, text.trim());
}
if (buttons.length > 0) {
await buttons[0].click();
await new Promise(r => setTimeout(r, 3000));
const url = page.url();
console.log('登录后URL:', url);
await page.screenshot({ path: '/tmp/after-login.png' });
console.log('已截图: /tmp/after-login.png');
}
}
}
await browser.close();
console.log('测试完成');
})();