{"record":{"id":"94c8a521452fd68d","repo":"xpzouying/xiaohongshu-mcp","slug":"w-94c8a5","errorCode":null,"errorMessage":"未找到通知分区标签: %w","messagePattern":"未找到通知分区标签: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"xiaohongshu/notification.go","lineNumber":180,"sourceCode":"\tpayload, err := n.readTab(page, tab)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\titems, filtered := convertNotifications(payload.MessageList, limit)\n\treturn &NotificationList{Tab: tab, Filtered: filtered, Items: items}, nil\n}\n\n// switchTab 切到目标分区。「评论和@」是默认分区，无需点击。\nfunc (n *NotificationAction) switchTab(ctx context.Context, page *rod.Page, tab NotificationTab) error {\n\tif tab == TabMentions {\n\t\treturn nil\n\t}\n\n\tlabel := tabLabels[tab]\n\telems, err := page.Elements(`.reds-tab-item`)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"未找到通知分区标签: %w\", err)\n\t}\n\n\tfor _, elem := range elems {\n\t\ttext, err := elem.Text()\n\t\tif err != nil || strings.TrimSpace(text) != label {\n\t\t\tcontinue\n\t\t}\n\t\thumanize.Delay(ctx, humanize.BeforeClick)\n\t\tif err := humanize.Click(elem); err != nil {\n\t\t\treturn fmt.Errorf(\"切换到分区 %s 失败: %w\", label, err)\n\t\t}\n\t\thumanize.Delay(ctx, humanize.AfterClick)\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"未找到分区标签 %q\", label)\n}\n\n// loadUntil 滚动加载，直到条目数够用或没有更多。","sourceCodeStart":162,"sourceCodeEnd":198,"githubUrl":"https://github.com/xpzouying/xiaohongshu-mcp/blob/332d196854a9eac0d2b8c2c0e3d0cc43139d724c/xiaohongshu/notification.go#L162-L198","documentation":"switchTab 查找通知分区标签时 page.Elements('.reds-tab-item') 直接报错：页面未加载出通知页 DOM、选择器查询超时，或页面结构变化。注意这与「找到元素但文本不匹配」的另一个分支不同。","triggerScenarios":"Thrown at xiaohongshu/notification.go:180 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["等待页面加载完成后重试","确认当前在通知页面","核对 .reds-tab-item 选择器是否仍有效"],"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"}