63 lines
1.8 KiB
JavaScript
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('测试完成');
|
|
})();
|