| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- {"version":8,"type":"context-options","origin":"library","browserName":"chromium","playwrightVersion":"1.60.0","options":{"noDefaultViewport":false,"viewport":{"width":1280,"height":720},"ignoreHTTPSErrors":false,"javaScriptEnabled":true,"bypassCSP":false,"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.7778.96 Safari/537.36","locale":"en-US","offline":false,"deviceScaleFactor":1,"isMobile":false,"hasTouch":false,"colorScheme":"light","acceptDownloads":"accept","baseURL":"http://127.0.0.1:3000","recordVideo":{"dir":"C:\\Users\\caoyg\\ai\\audio-tts\\audio_codebuddy\\test-results\\.playwright-artifacts-31"},"serviceWorkers":"allow","selectorEngines":[],"testIdAttributeName":"data-testid"},"platform":"win32","wallTime":1781447412012,"monotonicTime":114255.1,"sdkLanguage":"javascript","testIdAttributeName":"data-testid","contextId":"browser-context@02cef5a2f31c70b6d0e0ed87b3f4a694","title":"23-frontend-e2e.spec.ts:117 › 前端 UI 完整验收 › E04: 我的页面 - 用户卡片/菜单项点击/退出登录"}
- {"type":"before","callId":"call@6","startTime":114260.901,"class":"BrowserContext","method":"newPage","params":{},"stepId":"pw:api@34"}
- {"type":"event","time":114327.884,"class":"BrowserContext","method":"page","params":{"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}}
- {"type":"after","callId":"call@6","endTime":114328.079,"result":{"page":"<Page>"}}
- {"type":"before","callId":"call@8","startTime":114333.543,"class":"Frame","method":"goto","params":{"url":"http://localhost:5173/#/pages/mine/index","timeout":30000,"waitUntil":"networkidle"},"stepId":"pw:api@35","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@8"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@8","snapshotName":"before@call@8","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"about:blank","html":["HTML",{},["HEAD",{},["BASE",{"href":"about:blank"}]],["BODY"]],"viewport":{"width":1280,"height":720},"timestamp":114336.316,"wallTime":1781447412093,"collectionTime":0.6999999992549419,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"log","callId":"call@8","time":114338.633,"message":"navigating to \"http://localhost:5173/#/pages/mine/index\", waiting until \"networkidle\""}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447412104.jpeg","width":1280,"height":720,"timestamp":114347.966,"frameSwapWallTime":1781447412102.7542}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447412438.jpeg","width":1280,"height":720,"timestamp":114682.078,"frameSwapWallTime":1781447412435.61}
- {"type":"console","messageType":"debug","text":"[vite] connecting...","args":[{"preview":"[vite] connecting...","value":"[vite] connecting..."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":494,"columnNumber":8},"time":114693.818,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"console","messageType":"warning","text":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","args":[{"preview":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","value":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\""}],"location":{"url":"http://localhost:5173/tonggan/node_modules/.vite/deps/vue-router.js?v=0afd88a5","lineNumber":50,"columnNumber":15},"time":114727.208,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447412507.jpeg","width":1280,"height":720,"timestamp":114750.127,"frameSwapWallTime":1781447412505.138}
- {"type":"console","messageType":"debug","text":"[vite] connected.","args":[{"preview":"[vite] connected.","value":"[vite] connected."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":617,"columnNumber":14},"time":115008.572,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"after","callId":"call@8","endTime":115220.586,"result":{"response":"<Response>"},"afterSnapshot":"after@call@8"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@8","snapshotName":"after@call@8","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":["HTML",{"lang":"zh-CN","data-theme":"standard"},["HEAD",{},["BASE",{"href":"http://localhost:5173/tonggan/#/pages/mine/index"}],"\n ","\n\n ",["META",{"charset":"utf-8"}],"\n ",["META",{"name":"viewport","content":"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"}],"\n ",["META",{"name":"theme-color","content":"#4ecdc4"}],"\n ",["META",{"name":"description","content":"tonggan - 儿童注意力训练 App - AI 当教练,爸妈少操心"}],"\n ",["LINK",{"rel":"icon","type":"image/svg+xml","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"apple-touch-icon","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"manifest","href":"/tonggan/manifest.webmanifest"}],"\n ",["TITLE",{},"tonggan · AI 当教练,爸妈少操心"],"\n ",["STYLE",{},"\n.app {\r\n min-height: 100vh;\r\n width: 100%;\n}\r\n"],["STYLE",{},"/**\r\n * tonggan 主题:3 套 CSS 变量方案\r\n * - standard 标准(默认):柔和蓝绿色\r\n * - high-contrast 高对比:强对比,适合视力辅助\r\n * - soft 柔和:暖色调,降低刺激\r\n *\r\n * 全局字号:\r\n * - font-mega 超大(指令,48px+)\r\n * - font-xl 标题\r\n * - font-lg 重要内容\r\n * - font-md 正文\r\n * - font-sm 辅助\r\n */\r\n\r\n:root,\r\n:root[data-theme='standard'] {\r\n /* 颜色 */\r\n --color-primary: #4ecdc4;\r\n --color-primary-dark: #2eb8af;\r\n --color-accent: #ffb84d;\r\n --color-success: #6bcf7f;\r\n --color-warning: #ff9966;\r\n --color-danger: #ff6b6b;\r\n --color-bg: #fafbfc;\r\n --color-bg-card: #ffffff;\r\n --color-text: #1f2933;\r\n --color-text-secondary: #5b6470;\r\n --color-border: #e4e9ee;\r\n /* 字号 */\r\n --font-mega: 64px;\r\n --font-xl: 36px;\r\n --font-lg: 28px;\r\n --font-md: 20px;\r\n --font-sm: 16px;\r\n /* 间距 */\r\n --btn-height: 120px;\r\n --btn-radius: 24px;\r\n --card-radius: 20px;\r\n /* 字体 */\r\n --font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;\r\n}\r\n\r\n:root[data-theme='high-contrast'] {\r\n --color-primary: #0066cc;\r\n --color-primary-dark: #004999;\r\n --color-accent: #ff8800;\r\n --color-success: #009933;\r\n --color-warning: #cc6600;\r\n --color-danger: #cc0000;\r\n --color-bg: #ffffff;\r\n --color-bg-card: #ffffff;\r\n --color-text: #000000;\r\n --color-text-secondary: #1a1a1a;\r\n --color-border: #000000;\r\n --font-mega: 72px;\r\n --font-xl: 40px;\r\n --font-lg: 32px;\r\n --font-md: 24px;\r\n --font-sm: 18px;\r\n --btn-height: 140px;\r\n}\r\n\r\n:root[data-theme='soft'] {\r\n --color-primary: #ffb3ba;\r\n --color-primary-dark: #ff8a96;\r\n --color-accent: #bae1ff;\r\n --color-success: #baffc9;\r\n --color-warning: #ffffba;\r\n --color-danger: #ffb3ba;\r\n --color-bg: #fff8f8;\r\n --color-bg-card: #fffbfb;\r\n --color-text: #4a3a3a;\r\n --color-text-secondary: #7a6a6a;\r\n --color-border: #f0e0e0;\r\n --font-mega: 56px;\r\n --font-xl: 32px;\r\n --font-lg: 24px;\r\n --font-md: 18px;\r\n --font-sm: 14px;\r\n --btn-height: 110px;\r\n}"],["STYLE",{},"/* tonggan 全局样式 */\r\n\r\n* {\r\n box-sizing: border-box;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\nhtml,\r\nbody {\r\n margin: 0;\r\n padding: 0;\r\n font-family: var(--font-family);\r\n font-size: var(--font-md);\r\n color: var(--color-text);\r\n background-color: var(--color-bg);\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\nview,\r\ntext,\r\nbutton,\r\ninput {\r\n font-family: inherit;\r\n}\r\n\r\n/* 通用按钮:高度 ≥120px,圆角 24px */\r\n.btn {\r\n min-height: var(--btn-height);\r\n padding: 16px 32px;\r\n border: none;\r\n border-radius: var(--btn-radius);\r\n background-color: var(--color-primary);\r\n color: #ffffff;\r\n font-size: var(--font-lg);\r\n font-weight: 700;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.15s, background-color 0.15s;\r\n}\r\n\r\n.btn:active {\r\n transform: scale(0.97);\r\n background-color: var(--color-primary-dark);\r\n}\r\n\r\n.btn--secondary {\r\n background-color: var(--color-bg-card);\r\n color: var(--color-text);\r\n border: 2px solid var(--color-border);\r\n}\r\n\r\n.btn--lg {\r\n font-size: var(--font-xl);\r\n min-height: 140px;\r\n}\r\n\r\n/* 通用卡片 */\r\n.card {\r\n background-color: var(--color-bg-card);\r\n border-radius: var(--card-radius);\r\n padding: 24px;\r\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n/* 大字指令 */\r\n.instruction {\r\n font-size: var(--font-mega);\r\n font-weight: 800;\r\n line-height: 1.3;\r\n color: var(--color-text);\r\n text-align: center;\r\n}\r\n\r\n/* 辅助文字 */\r\n.muted {\r\n color: var(--color-text-secondary);\r\n font-size: var(--font-sm);\r\n}"]],"\n ",["BODY",{},"\n ",["DIV",{"id":"app","data-v-app":""},["DIV",{"class":"app"}]],"\n ","\n \n"]],"viewport":{"width":1280,"height":720},"timestamp":115224.597,"wallTime":1781447412980,"collectionTime":1.199999999254942,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@10","startTime":115228.025,"class":"Frame","method":"waitForTimeout","params":{"waitTimeout":3000},"stepId":"pw:api@36","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@10"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@10","snapshotName":"before@call@10","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[1,34]],"viewport":{"width":1280,"height":720},"timestamp":115229.801,"wallTime":1781447412987,"collectionTime":0.2000000011175871,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@10","endTime":118233.941,"afterSnapshot":"after@call@10"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@10","snapshotName":"after@call@10","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[2,34]],"viewport":{"width":1280,"height":720},"timestamp":118258.292,"wallTime":1781447415993,"collectionTime":0.40000000037252903,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@12","startTime":118269.978,"title":"Expect \"toBeVisible\"","class":"Frame","method":"expect","params":{"selector":"#app","expression":"to.be.visible","expectedValue":{"value":{"v":"undefined"},"handles":[]},"isNot":false,"timeout":15000},"stepId":"expect@37","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@12"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@12","snapshotName":"before@call@12","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[3,34]],"viewport":{"width":1280,"height":720},"timestamp":118306.353,"wallTime":1781447416029,"collectionTime":0.30000000074505806,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"log","callId":"call@12","time":118307.858,"message":"Expect \"toBeVisible\" with timeout 15000ms"}
- {"type":"log","callId":"call@12","time":118307.894,"message":"waiting for locator('#app')"}
- {"type":"after","callId":"call@12","endTime":118350.696,"result":{"matches":true,"received":{"value":{"s":"visible"},"ariaSnapshot":""}},"afterSnapshot":"after@call@12"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@12","snapshotName":"after@call@12","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":["HTML",{"lang":"zh-CN","data-theme":"standard"},[[4,26]],[[4,27]],["BODY",{},[[4,28]],["DIV",{"__playwright_target__":"call@12","id":"app","data-v-app":""},[[4,29]]],[[4,31]],[[4,32]]]],"viewport":{"width":1280,"height":720},"timestamp":118368.174,"wallTime":1781447416124,"collectionTime":0.2999999988824129,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@14","startTime":118371.098,"class":"Frame","method":"queryCount","params":{"selector":"text=书籍生成 >> nth=0"},"stepId":"pw:api@38","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@14"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@14","snapshotName":"before@call@14","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[1,2]],"viewport":{"width":1280,"height":720},"timestamp":118373.928,"wallTime":1781447416130,"collectionTime":0.40000000037252903,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@14","endTime":118377.783,"result":{"value":0},"afterSnapshot":"after@call@14"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@14","snapshotName":"after@call@14","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[2,2]],"viewport":{"width":1280,"height":720},"timestamp":118380.012,"wallTime":1781447416137,"collectionTime":0.19999999925494194,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@16","startTime":118381.97,"class":"Frame","method":"goto","params":{"url":"http://localhost:5173/#/pages/mine/index","timeout":30000,"waitUntil":"networkidle"},"stepId":"pw:api@39","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@16"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@16","snapshotName":"before@call@16","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[3,2]],"viewport":{"width":1280,"height":720},"timestamp":118404.621,"wallTime":1781447416141,"collectionTime":0.19999999925494194,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"log","callId":"call@16","time":118405.793,"message":"navigating to \"http://localhost:5173/#/pages/mine/index\", waiting until \"networkidle\""}
- {"type":"console","messageType":"debug","text":"[vite] connecting...","args":[{"preview":"[vite] connecting...","value":"[vite] connecting..."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":494,"columnNumber":8},"time":118448.735,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"console","messageType":"warning","text":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","args":[{"preview":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","value":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\""}],"location":{"url":"http://localhost:5173/tonggan/node_modules/.vite/deps/vue-router.js?v=0afd88a5","lineNumber":50,"columnNumber":15},"time":118451.243,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447416209.jpeg","width":1280,"height":720,"timestamp":118452.646,"frameSwapWallTime":1781447416199.042}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447416243.jpeg","width":1280,"height":720,"timestamp":118486.492,"frameSwapWallTime":1781447416218.485}
- {"type":"console","messageType":"debug","text":"[vite] connected.","args":[{"preview":"[vite] connected.","value":"[vite] connected."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":617,"columnNumber":14},"time":118747.97,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"after","callId":"call@16","endTime":118965.548,"result":{"response":"<Response>"},"afterSnapshot":"after@call@16"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@16","snapshotName":"after@call@16","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":["HTML",{"lang":"zh-CN","data-theme":"standard"},["HEAD",{},["BASE",{"href":"http://localhost:5173/tonggan/#/pages/mine/index"}],"\n ","\n\n ",["META",{"charset":"utf-8"}],"\n ",["META",{"name":"viewport","content":"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"}],"\n ",["META",{"name":"theme-color","content":"#4ecdc4"}],"\n ",["META",{"name":"description","content":"tonggan - 儿童注意力训练 App - AI 当教练,爸妈少操心"}],"\n ",["LINK",{"rel":"icon","type":"image/svg+xml","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"apple-touch-icon","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"manifest","href":"/tonggan/manifest.webmanifest"}],"\n ",["TITLE",{},"tonggan · AI 当教练,爸妈少操心"],"\n ",["STYLE",{},"\n.app {\r\n min-height: 100vh;\r\n width: 100%;\n}\r\n"],["STYLE",{},"/**\r\n * tonggan 主题:3 套 CSS 变量方案\r\n * - standard 标准(默认):柔和蓝绿色\r\n * - high-contrast 高对比:强对比,适合视力辅助\r\n * - soft 柔和:暖色调,降低刺激\r\n *\r\n * 全局字号:\r\n * - font-mega 超大(指令,48px+)\r\n * - font-xl 标题\r\n * - font-lg 重要内容\r\n * - font-md 正文\r\n * - font-sm 辅助\r\n */\r\n\r\n:root,\r\n:root[data-theme='standard'] {\r\n /* 颜色 */\r\n --color-primary: #4ecdc4;\r\n --color-primary-dark: #2eb8af;\r\n --color-accent: #ffb84d;\r\n --color-success: #6bcf7f;\r\n --color-warning: #ff9966;\r\n --color-danger: #ff6b6b;\r\n --color-bg: #fafbfc;\r\n --color-bg-card: #ffffff;\r\n --color-text: #1f2933;\r\n --color-text-secondary: #5b6470;\r\n --color-border: #e4e9ee;\r\n /* 字号 */\r\n --font-mega: 64px;\r\n --font-xl: 36px;\r\n --font-lg: 28px;\r\n --font-md: 20px;\r\n --font-sm: 16px;\r\n /* 间距 */\r\n --btn-height: 120px;\r\n --btn-radius: 24px;\r\n --card-radius: 20px;\r\n /* 字体 */\r\n --font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;\r\n}\r\n\r\n:root[data-theme='high-contrast'] {\r\n --color-primary: #0066cc;\r\n --color-primary-dark: #004999;\r\n --color-accent: #ff8800;\r\n --color-success: #009933;\r\n --color-warning: #cc6600;\r\n --color-danger: #cc0000;\r\n --color-bg: #ffffff;\r\n --color-bg-card: #ffffff;\r\n --color-text: #000000;\r\n --color-text-secondary: #1a1a1a;\r\n --color-border: #000000;\r\n --font-mega: 72px;\r\n --font-xl: 40px;\r\n --font-lg: 32px;\r\n --font-md: 24px;\r\n --font-sm: 18px;\r\n --btn-height: 140px;\r\n}\r\n\r\n:root[data-theme='soft'] {\r\n --color-primary: #ffb3ba;\r\n --color-primary-dark: #ff8a96;\r\n --color-accent: #bae1ff;\r\n --color-success: #baffc9;\r\n --color-warning: #ffffba;\r\n --color-danger: #ffb3ba;\r\n --color-bg: #fff8f8;\r\n --color-bg-card: #fffbfb;\r\n --color-text: #4a3a3a;\r\n --color-text-secondary: #7a6a6a;\r\n --color-border: #f0e0e0;\r\n --font-mega: 56px;\r\n --font-xl: 32px;\r\n --font-lg: 24px;\r\n --font-md: 18px;\r\n --font-sm: 14px;\r\n --btn-height: 110px;\r\n}"],["STYLE",{},"/* tonggan 全局样式 */\r\n\r\n* {\r\n box-sizing: border-box;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\nhtml,\r\nbody {\r\n margin: 0;\r\n padding: 0;\r\n font-family: var(--font-family);\r\n font-size: var(--font-md);\r\n color: var(--color-text);\r\n background-color: var(--color-bg);\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\nview,\r\ntext,\r\nbutton,\r\ninput {\r\n font-family: inherit;\r\n}\r\n\r\n/* 通用按钮:高度 ≥120px,圆角 24px */\r\n.btn {\r\n min-height: var(--btn-height);\r\n padding: 16px 32px;\r\n border: none;\r\n border-radius: var(--btn-radius);\r\n background-color: var(--color-primary);\r\n color: #ffffff;\r\n font-size: var(--font-lg);\r\n font-weight: 700;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.15s, background-color 0.15s;\r\n}\r\n\r\n.btn:active {\r\n transform: scale(0.97);\r\n background-color: var(--color-primary-dark);\r\n}\r\n\r\n.btn--secondary {\r\n background-color: var(--color-bg-card);\r\n color: var(--color-text);\r\n border: 2px solid var(--color-border);\r\n}\r\n\r\n.btn--lg {\r\n font-size: var(--font-xl);\r\n min-height: 140px;\r\n}\r\n\r\n/* 通用卡片 */\r\n.card {\r\n background-color: var(--color-bg-card);\r\n border-radius: var(--card-radius);\r\n padding: 24px;\r\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n/* 大字指令 */\r\n.instruction {\r\n font-size: var(--font-mega);\r\n font-weight: 800;\r\n line-height: 1.3;\r\n color: var(--color-text);\r\n text-align: center;\r\n}\r\n\r\n/* 辅助文字 */\r\n.muted {\r\n color: var(--color-text-secondary);\r\n font-size: var(--font-sm);\r\n}"]],"\n ",["BODY",{},"\n ",["DIV",{"id":"app","data-v-app":""},["DIV",{"class":"app"}]],"\n ","\n \n"]],"viewport":{"width":1280,"height":720},"timestamp":118977.387,"wallTime":1781447416725,"collectionTime":0.8999999985098839,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@18","startTime":118979.429,"class":"Frame","method":"waitForTimeout","params":{"waitTimeout":2000},"stepId":"pw:api@40","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@18"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@18","snapshotName":"before@call@18","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[1,34]],"viewport":{"width":1280,"height":720},"timestamp":118991.923,"wallTime":1781447416738,"collectionTime":0.30000000074505806,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@18","endTime":121004.056,"afterSnapshot":"after@call@18"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@18","snapshotName":"after@call@18","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[2,34]],"viewport":{"width":1280,"height":720},"timestamp":121056.498,"wallTime":1781447418763,"collectionTime":0.2999999988824129,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@20","startTime":121058.586,"class":"Frame","method":"queryCount","params":{"selector":"text=历史记录 >> nth=0"},"stepId":"pw:api@41","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@20"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@20","snapshotName":"before@call@20","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[3,34]],"viewport":{"width":1280,"height":720},"timestamp":121106.325,"wallTime":1781447418817,"collectionTime":0.30000000074505806,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@20","endTime":121136.282,"result":{"value":0},"afterSnapshot":"after@call@20"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@20","snapshotName":"after@call@20","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[4,34]],"viewport":{"width":1280,"height":720},"timestamp":121138.801,"wallTime":1781447418896,"collectionTime":0.30000000074505806,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@22","startTime":121140.464,"class":"Frame","method":"goto","params":{"url":"http://localhost:5173/#/pages/mine/index","timeout":30000,"waitUntil":"networkidle"},"stepId":"pw:api@42","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@22"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@22","snapshotName":"before@call@22","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[5,34]],"viewport":{"width":1280,"height":720},"timestamp":121142.541,"wallTime":1781447418899,"collectionTime":0.30000000074505806,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"log","callId":"call@22","time":121143.529,"message":"navigating to \"http://localhost:5173/#/pages/mine/index\", waiting until \"networkidle\""}
- {"type":"console","messageType":"debug","text":"[vite] connecting...","args":[{"preview":"[vite] connecting...","value":"[vite] connecting..."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":494,"columnNumber":8},"time":121194.476,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447418965.jpeg","width":1280,"height":720,"timestamp":121208.865,"frameSwapWallTime":1781447418960.679}
- {"type":"console","messageType":"warning","text":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","args":[{"preview":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","value":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\""}],"location":{"url":"http://localhost:5173/tonggan/node_modules/.vite/deps/vue-router.js?v=0afd88a5","lineNumber":50,"columnNumber":15},"time":121244.061,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447419012.jpeg","width":1280,"height":720,"timestamp":121255.404,"frameSwapWallTime":1781447419003.381}
- {"type":"console","messageType":"debug","text":"[vite] connected.","args":[{"preview":"[vite] connected.","value":"[vite] connected."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":617,"columnNumber":14},"time":121499.891,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"after","callId":"call@22","endTime":121806.113,"result":{"response":"<Response>"},"afterSnapshot":"after@call@22"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@22","snapshotName":"after@call@22","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":["HTML",{"lang":"zh-CN","data-theme":"standard"},["HEAD",{},["BASE",{"href":"http://localhost:5173/tonggan/#/pages/mine/index"}],"\n ","\n\n ",["META",{"charset":"utf-8"}],"\n ",["META",{"name":"viewport","content":"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"}],"\n ",["META",{"name":"theme-color","content":"#4ecdc4"}],"\n ",["META",{"name":"description","content":"tonggan - 儿童注意力训练 App - AI 当教练,爸妈少操心"}],"\n ",["LINK",{"rel":"icon","type":"image/svg+xml","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"apple-touch-icon","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"manifest","href":"/tonggan/manifest.webmanifest"}],"\n ",["TITLE",{},"tonggan · AI 当教练,爸妈少操心"],"\n ",["STYLE",{},"\n.app {\r\n min-height: 100vh;\r\n width: 100%;\n}\r\n"],["STYLE",{},"/**\r\n * tonggan 主题:3 套 CSS 变量方案\r\n * - standard 标准(默认):柔和蓝绿色\r\n * - high-contrast 高对比:强对比,适合视力辅助\r\n * - soft 柔和:暖色调,降低刺激\r\n *\r\n * 全局字号:\r\n * - font-mega 超大(指令,48px+)\r\n * - font-xl 标题\r\n * - font-lg 重要内容\r\n * - font-md 正文\r\n * - font-sm 辅助\r\n */\r\n\r\n:root,\r\n:root[data-theme='standard'] {\r\n /* 颜色 */\r\n --color-primary: #4ecdc4;\r\n --color-primary-dark: #2eb8af;\r\n --color-accent: #ffb84d;\r\n --color-success: #6bcf7f;\r\n --color-warning: #ff9966;\r\n --color-danger: #ff6b6b;\r\n --color-bg: #fafbfc;\r\n --color-bg-card: #ffffff;\r\n --color-text: #1f2933;\r\n --color-text-secondary: #5b6470;\r\n --color-border: #e4e9ee;\r\n /* 字号 */\r\n --font-mega: 64px;\r\n --font-xl: 36px;\r\n --font-lg: 28px;\r\n --font-md: 20px;\r\n --font-sm: 16px;\r\n /* 间距 */\r\n --btn-height: 120px;\r\n --btn-radius: 24px;\r\n --card-radius: 20px;\r\n /* 字体 */\r\n --font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;\r\n}\r\n\r\n:root[data-theme='high-contrast'] {\r\n --color-primary: #0066cc;\r\n --color-primary-dark: #004999;\r\n --color-accent: #ff8800;\r\n --color-success: #009933;\r\n --color-warning: #cc6600;\r\n --color-danger: #cc0000;\r\n --color-bg: #ffffff;\r\n --color-bg-card: #ffffff;\r\n --color-text: #000000;\r\n --color-text-secondary: #1a1a1a;\r\n --color-border: #000000;\r\n --font-mega: 72px;\r\n --font-xl: 40px;\r\n --font-lg: 32px;\r\n --font-md: 24px;\r\n --font-sm: 18px;\r\n --btn-height: 140px;\r\n}\r\n\r\n:root[data-theme='soft'] {\r\n --color-primary: #ffb3ba;\r\n --color-primary-dark: #ff8a96;\r\n --color-accent: #bae1ff;\r\n --color-success: #baffc9;\r\n --color-warning: #ffffba;\r\n --color-danger: #ffb3ba;\r\n --color-bg: #fff8f8;\r\n --color-bg-card: #fffbfb;\r\n --color-text: #4a3a3a;\r\n --color-text-secondary: #7a6a6a;\r\n --color-border: #f0e0e0;\r\n --font-mega: 56px;\r\n --font-xl: 32px;\r\n --font-lg: 24px;\r\n --font-md: 18px;\r\n --font-sm: 14px;\r\n --btn-height: 110px;\r\n}"],["STYLE",{},"/* tonggan 全局样式 */\r\n\r\n* {\r\n box-sizing: border-box;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\nhtml,\r\nbody {\r\n margin: 0;\r\n padding: 0;\r\n font-family: var(--font-family);\r\n font-size: var(--font-md);\r\n color: var(--color-text);\r\n background-color: var(--color-bg);\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\nview,\r\ntext,\r\nbutton,\r\ninput {\r\n font-family: inherit;\r\n}\r\n\r\n/* 通用按钮:高度 ≥120px,圆角 24px */\r\n.btn {\r\n min-height: var(--btn-height);\r\n padding: 16px 32px;\r\n border: none;\r\n border-radius: var(--btn-radius);\r\n background-color: var(--color-primary);\r\n color: #ffffff;\r\n font-size: var(--font-lg);\r\n font-weight: 700;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.15s, background-color 0.15s;\r\n}\r\n\r\n.btn:active {\r\n transform: scale(0.97);\r\n background-color: var(--color-primary-dark);\r\n}\r\n\r\n.btn--secondary {\r\n background-color: var(--color-bg-card);\r\n color: var(--color-text);\r\n border: 2px solid var(--color-border);\r\n}\r\n\r\n.btn--lg {\r\n font-size: var(--font-xl);\r\n min-height: 140px;\r\n}\r\n\r\n/* 通用卡片 */\r\n.card {\r\n background-color: var(--color-bg-card);\r\n border-radius: var(--card-radius);\r\n padding: 24px;\r\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n/* 大字指令 */\r\n.instruction {\r\n font-size: var(--font-mega);\r\n font-weight: 800;\r\n line-height: 1.3;\r\n color: var(--color-text);\r\n text-align: center;\r\n}\r\n\r\n/* 辅助文字 */\r\n.muted {\r\n color: var(--color-text-secondary);\r\n font-size: var(--font-sm);\r\n}"]],"\n ",["BODY",{},"\n ",["DIV",{"id":"app","data-v-app":""},["DIV",{"class":"app"}]],"\n ","\n \n"]],"viewport":{"width":1280,"height":720},"timestamp":121821.861,"wallTime":1781447419566,"collectionTime":0.900000000372529,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@24","startTime":121873.095,"class":"Frame","method":"waitForTimeout","params":{"waitTimeout":2000},"stepId":"pw:api@43","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@24"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@24","snapshotName":"before@call@24","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[1,34]],"viewport":{"width":1280,"height":720},"timestamp":121940.922,"wallTime":1781447419632,"collectionTime":0.40000000037252903,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@24","endTime":123953.173,"afterSnapshot":"after@call@24"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@24","snapshotName":"after@call@24","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[2,34]],"viewport":{"width":1280,"height":720},"timestamp":123956.077,"wallTime":1781447421713,"collectionTime":0.2999999988824129,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@26","startTime":123957.901,"class":"Frame","method":"queryCount","params":{"selector":"text=会员中心 >> nth=0"},"stepId":"pw:api@44","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@26"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@26","snapshotName":"before@call@26","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[3,34]],"viewport":{"width":1280,"height":720},"timestamp":123959.418,"wallTime":1781447421716,"collectionTime":0.2999999988824129,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@26","endTime":123971.74,"result":{"value":0},"afterSnapshot":"after@call@26"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@26","snapshotName":"after@call@26","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[4,34]],"viewport":{"width":1280,"height":720},"timestamp":123973.543,"wallTime":1781447421730,"collectionTime":0.19999999925494194,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@28","startTime":123975.384,"class":"Frame","method":"goto","params":{"url":"http://localhost:5173/#/pages/mine/index","timeout":30000,"waitUntil":"networkidle"},"stepId":"pw:api@45","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@28"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@28","snapshotName":"before@call@28","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[5,34]],"viewport":{"width":1280,"height":720},"timestamp":123977.446,"wallTime":1781447421734,"collectionTime":0.19999999925494194,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"log","callId":"call@28","time":123978.564,"message":"navigating to \"http://localhost:5173/#/pages/mine/index\", waiting until \"networkidle\""}
- {"type":"console","messageType":"debug","text":"[vite] connecting...","args":[{"preview":"[vite] connecting...","value":"[vite] connecting..."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":494,"columnNumber":8},"time":124008.542,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"console","messageType":"warning","text":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","args":[{"preview":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","value":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\""}],"location":{"url":"http://localhost:5173/tonggan/node_modules/.vite/deps/vue-router.js?v=0afd88a5","lineNumber":50,"columnNumber":15},"time":124014.103,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447421772.jpeg","width":1280,"height":720,"timestamp":124015.955,"frameSwapWallTime":1781447421769.2659}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447421785.jpeg","width":1280,"height":720,"timestamp":124028.474,"frameSwapWallTime":1781447421783.031}
- {"type":"console","messageType":"debug","text":"[vite] connected.","args":[{"preview":"[vite] connected.","value":"[vite] connected."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":617,"columnNumber":14},"time":124365.756,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"after","callId":"call@28","endTime":124522.058,"result":{"response":"<Response>"},"afterSnapshot":"after@call@28"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@28","snapshotName":"after@call@28","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":["HTML",{"lang":"zh-CN","data-theme":"standard"},["HEAD",{},["BASE",{"href":"http://localhost:5173/tonggan/#/pages/mine/index"}],"\n ","\n\n ",["META",{"charset":"utf-8"}],"\n ",["META",{"name":"viewport","content":"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"}],"\n ",["META",{"name":"theme-color","content":"#4ecdc4"}],"\n ",["META",{"name":"description","content":"tonggan - 儿童注意力训练 App - AI 当教练,爸妈少操心"}],"\n ",["LINK",{"rel":"icon","type":"image/svg+xml","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"apple-touch-icon","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"manifest","href":"/tonggan/manifest.webmanifest"}],"\n ",["TITLE",{},"tonggan · AI 当教练,爸妈少操心"],"\n ",["STYLE",{},"\n.app {\r\n min-height: 100vh;\r\n width: 100%;\n}\r\n"],["STYLE",{},"/**\r\n * tonggan 主题:3 套 CSS 变量方案\r\n * - standard 标准(默认):柔和蓝绿色\r\n * - high-contrast 高对比:强对比,适合视力辅助\r\n * - soft 柔和:暖色调,降低刺激\r\n *\r\n * 全局字号:\r\n * - font-mega 超大(指令,48px+)\r\n * - font-xl 标题\r\n * - font-lg 重要内容\r\n * - font-md 正文\r\n * - font-sm 辅助\r\n */\r\n\r\n:root,\r\n:root[data-theme='standard'] {\r\n /* 颜色 */\r\n --color-primary: #4ecdc4;\r\n --color-primary-dark: #2eb8af;\r\n --color-accent: #ffb84d;\r\n --color-success: #6bcf7f;\r\n --color-warning: #ff9966;\r\n --color-danger: #ff6b6b;\r\n --color-bg: #fafbfc;\r\n --color-bg-card: #ffffff;\r\n --color-text: #1f2933;\r\n --color-text-secondary: #5b6470;\r\n --color-border: #e4e9ee;\r\n /* 字号 */\r\n --font-mega: 64px;\r\n --font-xl: 36px;\r\n --font-lg: 28px;\r\n --font-md: 20px;\r\n --font-sm: 16px;\r\n /* 间距 */\r\n --btn-height: 120px;\r\n --btn-radius: 24px;\r\n --card-radius: 20px;\r\n /* 字体 */\r\n --font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;\r\n}\r\n\r\n:root[data-theme='high-contrast'] {\r\n --color-primary: #0066cc;\r\n --color-primary-dark: #004999;\r\n --color-accent: #ff8800;\r\n --color-success: #009933;\r\n --color-warning: #cc6600;\r\n --color-danger: #cc0000;\r\n --color-bg: #ffffff;\r\n --color-bg-card: #ffffff;\r\n --color-text: #000000;\r\n --color-text-secondary: #1a1a1a;\r\n --color-border: #000000;\r\n --font-mega: 72px;\r\n --font-xl: 40px;\r\n --font-lg: 32px;\r\n --font-md: 24px;\r\n --font-sm: 18px;\r\n --btn-height: 140px;\r\n}\r\n\r\n:root[data-theme='soft'] {\r\n --color-primary: #ffb3ba;\r\n --color-primary-dark: #ff8a96;\r\n --color-accent: #bae1ff;\r\n --color-success: #baffc9;\r\n --color-warning: #ffffba;\r\n --color-danger: #ffb3ba;\r\n --color-bg: #fff8f8;\r\n --color-bg-card: #fffbfb;\r\n --color-text: #4a3a3a;\r\n --color-text-secondary: #7a6a6a;\r\n --color-border: #f0e0e0;\r\n --font-mega: 56px;\r\n --font-xl: 32px;\r\n --font-lg: 24px;\r\n --font-md: 18px;\r\n --font-sm: 14px;\r\n --btn-height: 110px;\r\n}"],["STYLE",{},"/* tonggan 全局样式 */\r\n\r\n* {\r\n box-sizing: border-box;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\nhtml,\r\nbody {\r\n margin: 0;\r\n padding: 0;\r\n font-family: var(--font-family);\r\n font-size: var(--font-md);\r\n color: var(--color-text);\r\n background-color: var(--color-bg);\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\nview,\r\ntext,\r\nbutton,\r\ninput {\r\n font-family: inherit;\r\n}\r\n\r\n/* 通用按钮:高度 ≥120px,圆角 24px */\r\n.btn {\r\n min-height: var(--btn-height);\r\n padding: 16px 32px;\r\n border: none;\r\n border-radius: var(--btn-radius);\r\n background-color: var(--color-primary);\r\n color: #ffffff;\r\n font-size: var(--font-lg);\r\n font-weight: 700;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.15s, background-color 0.15s;\r\n}\r\n\r\n.btn:active {\r\n transform: scale(0.97);\r\n background-color: var(--color-primary-dark);\r\n}\r\n\r\n.btn--secondary {\r\n background-color: var(--color-bg-card);\r\n color: var(--color-text);\r\n border: 2px solid var(--color-border);\r\n}\r\n\r\n.btn--lg {\r\n font-size: var(--font-xl);\r\n min-height: 140px;\r\n}\r\n\r\n/* 通用卡片 */\r\n.card {\r\n background-color: var(--color-bg-card);\r\n border-radius: var(--card-radius);\r\n padding: 24px;\r\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n/* 大字指令 */\r\n.instruction {\r\n font-size: var(--font-mega);\r\n font-weight: 800;\r\n line-height: 1.3;\r\n color: var(--color-text);\r\n text-align: center;\r\n}\r\n\r\n/* 辅助文字 */\r\n.muted {\r\n color: var(--color-text-secondary);\r\n font-size: var(--font-sm);\r\n}"]],"\n ",["BODY",{},"\n ",["DIV",{"id":"app","data-v-app":""},["DIV",{"class":"app"}]],"\n ","\n \n"]],"viewport":{"width":1280,"height":720},"timestamp":124551.234,"wallTime":1781447422281,"collectionTime":0.7000000011175871,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@30","startTime":124552.813,"class":"Frame","method":"waitForTimeout","params":{"waitTimeout":2000},"stepId":"pw:api@46","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@30"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@30","snapshotName":"before@call@30","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[1,34]],"viewport":{"width":1280,"height":720},"timestamp":124570.425,"wallTime":1781447422318,"collectionTime":0.2000000011175871,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@30","endTime":126583.282,"afterSnapshot":"after@call@30"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@30","snapshotName":"after@call@30","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[2,34]],"viewport":{"width":1280,"height":720},"timestamp":126585.447,"wallTime":1781447424342,"collectionTime":0.30000000074505806,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@32","startTime":126587.583,"class":"Frame","method":"queryCount","params":{"selector":"text=设置 >> nth=0"},"stepId":"pw:api@47","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@32"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@32","snapshotName":"before@call@32","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[3,34]],"viewport":{"width":1280,"height":720},"timestamp":126590.583,"wallTime":1781447424347,"collectionTime":0.2000000011175871,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@32","endTime":126606.668,"result":{"value":0},"afterSnapshot":"after@call@32"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@32","snapshotName":"after@call@32","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[4,34]],"viewport":{"width":1280,"height":720},"timestamp":126610.112,"wallTime":1781447424366,"collectionTime":0.3999999985098839,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@34","startTime":126617.572,"class":"Frame","method":"goto","params":{"url":"http://localhost:5173/#/pages/mine/index","timeout":30000,"waitUntil":"networkidle"},"stepId":"pw:api@48","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@34"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@34","snapshotName":"before@call@34","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[5,34]],"viewport":{"width":1280,"height":720},"timestamp":126619.812,"wallTime":1781447424376,"collectionTime":0.40000000037252903,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"log","callId":"call@34","time":126620.895,"message":"navigating to \"http://localhost:5173/#/pages/mine/index\", waiting until \"networkidle\""}
- {"type":"console","messageType":"debug","text":"[vite] connecting...","args":[{"preview":"[vite] connecting...","value":"[vite] connecting..."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":494,"columnNumber":8},"time":126652.542,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"console","messageType":"warning","text":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","args":[{"preview":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\"","value":"[Vue Router warn]: No match found for location with path \"/pages/mine/index\""}],"location":{"url":"http://localhost:5173/tonggan/node_modules/.vite/deps/vue-router.js?v=0afd88a5","lineNumber":50,"columnNumber":15},"time":126659.821,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447424425.jpeg","width":1280,"height":720,"timestamp":126668.658,"frameSwapWallTime":1781447424421.636}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447424436.jpeg","width":1280,"height":720,"timestamp":126679.926,"frameSwapWallTime":1781447424433.727}
- {"type":"console","messageType":"debug","text":"[vite] connected.","args":[{"preview":"[vite] connected.","value":"[vite] connected."}],"location":{"url":"http://localhost:5173/tonggan/@vite/client","lineNumber":617,"columnNumber":14},"time":126954.286,"pageId":"page@f14a75fc673ee94d9f77fde9aeba608a"}
- {"type":"after","callId":"call@34","endTime":127165.848,"result":{"response":"<Response>"},"afterSnapshot":"after@call@34"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@34","snapshotName":"after@call@34","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":["HTML",{"lang":"zh-CN","data-theme":"standard"},["HEAD",{},["BASE",{"href":"http://localhost:5173/tonggan/#/pages/mine/index"}],"\n ","\n\n ",["META",{"charset":"utf-8"}],"\n ",["META",{"name":"viewport","content":"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"}],"\n ",["META",{"name":"theme-color","content":"#4ecdc4"}],"\n ",["META",{"name":"description","content":"tonggan - 儿童注意力训练 App - AI 当教练,爸妈少操心"}],"\n ",["LINK",{"rel":"icon","type":"image/svg+xml","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"apple-touch-icon","href":"/tonggan/icon.svg"}],"\n ",["LINK",{"rel":"manifest","href":"/tonggan/manifest.webmanifest"}],"\n ",["TITLE",{},"tonggan · AI 当教练,爸妈少操心"],"\n ",["STYLE",{},"\n.app {\r\n min-height: 100vh;\r\n width: 100%;\n}\r\n"],["STYLE",{},"/**\r\n * tonggan 主题:3 套 CSS 变量方案\r\n * - standard 标准(默认):柔和蓝绿色\r\n * - high-contrast 高对比:强对比,适合视力辅助\r\n * - soft 柔和:暖色调,降低刺激\r\n *\r\n * 全局字号:\r\n * - font-mega 超大(指令,48px+)\r\n * - font-xl 标题\r\n * - font-lg 重要内容\r\n * - font-md 正文\r\n * - font-sm 辅助\r\n */\r\n\r\n:root,\r\n:root[data-theme='standard'] {\r\n /* 颜色 */\r\n --color-primary: #4ecdc4;\r\n --color-primary-dark: #2eb8af;\r\n --color-accent: #ffb84d;\r\n --color-success: #6bcf7f;\r\n --color-warning: #ff9966;\r\n --color-danger: #ff6b6b;\r\n --color-bg: #fafbfc;\r\n --color-bg-card: #ffffff;\r\n --color-text: #1f2933;\r\n --color-text-secondary: #5b6470;\r\n --color-border: #e4e9ee;\r\n /* 字号 */\r\n --font-mega: 64px;\r\n --font-xl: 36px;\r\n --font-lg: 28px;\r\n --font-md: 20px;\r\n --font-sm: 16px;\r\n /* 间距 */\r\n --btn-height: 120px;\r\n --btn-radius: 24px;\r\n --card-radius: 20px;\r\n /* 字体 */\r\n --font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;\r\n}\r\n\r\n:root[data-theme='high-contrast'] {\r\n --color-primary: #0066cc;\r\n --color-primary-dark: #004999;\r\n --color-accent: #ff8800;\r\n --color-success: #009933;\r\n --color-warning: #cc6600;\r\n --color-danger: #cc0000;\r\n --color-bg: #ffffff;\r\n --color-bg-card: #ffffff;\r\n --color-text: #000000;\r\n --color-text-secondary: #1a1a1a;\r\n --color-border: #000000;\r\n --font-mega: 72px;\r\n --font-xl: 40px;\r\n --font-lg: 32px;\r\n --font-md: 24px;\r\n --font-sm: 18px;\r\n --btn-height: 140px;\r\n}\r\n\r\n:root[data-theme='soft'] {\r\n --color-primary: #ffb3ba;\r\n --color-primary-dark: #ff8a96;\r\n --color-accent: #bae1ff;\r\n --color-success: #baffc9;\r\n --color-warning: #ffffba;\r\n --color-danger: #ffb3ba;\r\n --color-bg: #fff8f8;\r\n --color-bg-card: #fffbfb;\r\n --color-text: #4a3a3a;\r\n --color-text-secondary: #7a6a6a;\r\n --color-border: #f0e0e0;\r\n --font-mega: 56px;\r\n --font-xl: 32px;\r\n --font-lg: 24px;\r\n --font-md: 18px;\r\n --font-sm: 14px;\r\n --btn-height: 110px;\r\n}"],["STYLE",{},"/* tonggan 全局样式 */\r\n\r\n* {\r\n box-sizing: border-box;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\nhtml,\r\nbody {\r\n margin: 0;\r\n padding: 0;\r\n font-family: var(--font-family);\r\n font-size: var(--font-md);\r\n color: var(--color-text);\r\n background-color: var(--color-bg);\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\nview,\r\ntext,\r\nbutton,\r\ninput {\r\n font-family: inherit;\r\n}\r\n\r\n/* 通用按钮:高度 ≥120px,圆角 24px */\r\n.btn {\r\n min-height: var(--btn-height);\r\n padding: 16px 32px;\r\n border: none;\r\n border-radius: var(--btn-radius);\r\n background-color: var(--color-primary);\r\n color: #ffffff;\r\n font-size: var(--font-lg);\r\n font-weight: 700;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.15s, background-color 0.15s;\r\n}\r\n\r\n.btn:active {\r\n transform: scale(0.97);\r\n background-color: var(--color-primary-dark);\r\n}\r\n\r\n.btn--secondary {\r\n background-color: var(--color-bg-card);\r\n color: var(--color-text);\r\n border: 2px solid var(--color-border);\r\n}\r\n\r\n.btn--lg {\r\n font-size: var(--font-xl);\r\n min-height: 140px;\r\n}\r\n\r\n/* 通用卡片 */\r\n.card {\r\n background-color: var(--color-bg-card);\r\n border-radius: var(--card-radius);\r\n padding: 24px;\r\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n/* 大字指令 */\r\n.instruction {\r\n font-size: var(--font-mega);\r\n font-weight: 800;\r\n line-height: 1.3;\r\n color: var(--color-text);\r\n text-align: center;\r\n}\r\n\r\n/* 辅助文字 */\r\n.muted {\r\n color: var(--color-text-secondary);\r\n font-size: var(--font-sm);\r\n}"]],"\n ",["BODY",{},"\n ",["DIV",{"id":"app","data-v-app":""},["DIV",{"class":"app"}]],"\n ","\n \n"]],"viewport":{"width":1280,"height":720},"timestamp":127169.374,"wallTime":1781447424925,"collectionTime":0.6999999992549419,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@36","startTime":127172.202,"class":"Frame","method":"waitForTimeout","params":{"waitTimeout":2000},"stepId":"pw:api@49","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@36"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@36","snapshotName":"before@call@36","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[1,34]],"viewport":{"width":1280,"height":720},"timestamp":127176.014,"wallTime":1781447424933,"collectionTime":0.2999999988824129,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@36","endTime":129187.47,"afterSnapshot":"after@call@36"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@36","snapshotName":"after@call@36","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[2,34]],"viewport":{"width":1280,"height":720},"timestamp":129190.206,"wallTime":1781447426946,"collectionTime":0.30000000074505806,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@38","startTime":129191.749,"class":"Frame","method":"queryCount","params":{"selector":"text=退出登录 >> nth=0"},"stepId":"pw:api@50","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@38"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@38","snapshotName":"before@call@38","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[3,34]],"viewport":{"width":1280,"height":720},"timestamp":129193.092,"wallTime":1781447426950,"collectionTime":0.2000000011175871,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"after","callId":"call@38","endTime":129203.062,"result":{"value":0},"afterSnapshot":"after@call@38"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@38","snapshotName":"after@call@38","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[4,34]],"viewport":{"width":1280,"height":720},"timestamp":129204.73,"wallTime":1781447426962,"collectionTime":0.30000000074505806,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"before","callId":"call@40","startTime":129207.092,"class":"Page","method":"screenshot","params":{"timeout":0,"type":"png","fullPage":true},"stepId":"pw:api@51","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","beforeSnapshot":"before@call@40"}
- {"type":"frame-snapshot","snapshot":{"callId":"call@40","snapshotName":"before@call@40","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[5,34]],"viewport":{"width":1280,"height":720},"timestamp":129208.95,"wallTime":1781447426966,"collectionTime":0.19999999925494194,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"log","callId":"call@40","time":129209.738,"message":"taking page screenshot"}
- {"type":"log","callId":"call@40","time":129211.379,"message":"waiting for fonts to load..."}
- {"type":"log","callId":"call@40","time":129212.819,"message":"fonts loaded"}
- {"type":"after","callId":"call@40","endTime":129236.279,"result":{"binary":"<Buffer>"},"afterSnapshot":"after@call@40"}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447426994.jpeg","width":1280,"height":720,"timestamp":129237.419,"frameSwapWallTime":1781447426991.596}
- {"type":"frame-snapshot","snapshot":{"callId":"call@40","snapshotName":"after@call@40","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","frameId":"frame@c43238e3d48f1d7e769d17a29d6de43f","frameUrl":"http://localhost:5173/tonggan/#/pages/mine/index","doctype":"html","html":[[6,34]],"viewport":{"width":1280,"height":720},"timestamp":129238.047,"wallTime":1781447426995,"collectionTime":0.09999999962747097,"resourceOverrides":[],"isMainFrame":true}}
- {"type":"screencast-frame","pageId":"page@f14a75fc673ee94d9f77fde9aeba608a","sha1":"page@f14a75fc673ee94d9f77fde9aeba608a-1781447427044.jpeg","width":1280,"height":720,"timestamp":129287.842,"frameSwapWallTime":1781447427042.276}
|