{"record":{"id":"d331931076c45763","repo":"xpzouying/xiaohongshu-mcp","slug":"w-d33193","errorCode":null,"errorMessage":"滚动加载失败: %w","messagePattern":"滚动加载失败: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"xiaohongshu/notification.go","lineNumber":213,"sourceCode":"\treturn fmt.Errorf(\"未找到分区标签 %q\", label)\n}\n\n// loadUntil 滚动加载，直到条目数够用或没有更多。\nfunc (n *NotificationAction) loadUntil(ctx context.Context, page *rod.Page, tab NotificationTab, limit int) error {\n\tconst maxRounds = 20\n\n\tfor range maxRounds {\n\t\tpayload, err := n.readTab(page, tab)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tloaded := len(payload.MessageList)\n\t\tif loaded >= limit || !payload.HasMore {\n\t\t\treturn nil\n\t\t}\n\n\t\tif err := page.Mouse.Scroll(0, 800, 5); err != nil {\n\t\t\treturn fmt.Errorf(\"滚动加载失败: %w\", err)\n\t\t}\n\t\thumanize.Delay(ctx, humanize.BetweenScroll)\n\n\t\tif after, err := n.readTab(page, tab); err == nil && len(after.MessageList) == loaded {\n\t\t\thumanize.Delay(ctx, humanize.Reading)\n\t\t}\n\n\t\tif err := ctx.Err(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// 页面状态里通知列表的原始结构。字段名与状态一致，解析交给 encoding/json。\ntype (\n\tnotificationPayload struct {\n\t\tHasMore     bool              `json:\"hasMore\"`","sourceCodeStart":195,"sourceCodeEnd":231,"githubUrl":"https://github.com/xpzouying/xiaohongshu-mcp/blob/332d196854a9eac0d2b8c2c0e3d0cc43139d724c/xiaohongshu/notification.go#L195-L231","documentation":"loadUntil 滚动加载循环中 page.Mouse.Scroll 触发下拉失败：页面鼠标控制不可用（页面正在导航/上下文销毁）或 CDP 输入事件被拒绝，导致无法加载更多通知。","triggerScenarios":"Thrown at xiaohongshu/notification.go:213 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["重试滚动操作","用页面内 JS 滚动作为替代方案","确认页面未被关闭或跳转"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"332d196854a9eac0d2b8c2c0e3d0cc43139d724c","analyzedAt":"2026-09-05T22:22:55.988Z","contentChangedAt":"2026-09-05T22:22:55.988Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}