| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // 真实浏览器测试 - 不跳过任何步骤
- const { chromium } = require('playwright');
- const fs = require('fs');
- const out = (m) => fs.appendFileSync('real-test.log', m + '\n');
- (async () => {
- fs.writeFileSync('real-test.log', '');
- out('真实浏览器测试开始\n');
- // 完全真实的 Chromium(不用 fake audio)
- const browser = await chromium.launch({
- headless: false, // 可见模式,让用户能看到
- });
- const page = await browser.newPage({ viewport: { width: 800, height: 1200 } });
- page.on('console', msg => {
- if (!msg.text().includes('KeyVault') && !msg.text().includes('favicon')) {
- out(`[CONSOLE ${msg.type()}] ${msg.text()}`);
- }
- });
- page.on('pageerror', err => out(`[PAGE ERROR] ${err.message}`));
- page.on('requestfailed', req => out(`[REQUEST FAILED] ${req.url()} - ${req.failure().errorText}`));
- await page.goto('http://localhost:3000/test/');
- await page.waitForTimeout(3000);
- out('页面加载\n');
- // 不录音,模拟用户的"手动输入文字 + 点完整流程"
- out('\n【测试】手动输入文字 + 点完整流程\n');
- await page.evaluate(() => {
- document.getElementById('at').textContent = '你好';
- document.getElementById('at').classList.remove('e');
- });
- out('✅ 文字已填入 ASR 框');
- await page.click('#bf');
- out('✅ 已点击完整流程按钮');
- await page.waitForTimeout(5000);
- const logContent = await page.locator('#log').textContent();
- out(`\n📋 页面日志:\n${logContent}`);
- const ltContent = await page.locator('#lt').textContent();
- out(`\n🤖 LLM 框: "${ltContent.substring(0, 200)}"`);
- await page.waitForTimeout(15000);
- const finalLog = await page.locator('#log').textContent();
- out(`\n📋 最终日志:\n${finalLog}`);
- await page.screenshot({ path: 'real-test-result.png', fullPage: true });
- out('\n📸 截图保存');
- await browser.close();
- out('\n✅ 测试结束');
- })().catch(err => {
- out('❌ 错误: ' + err.message);
- });
|