xpzouying/xiaohongshu-mcp · error
切换到分区 %s 失败: %w
Error message
切换到分区 %s 失败: %w
What it means
switchTab 已遍历找到目标分区标签(如「赞和收藏」)并执行 humanize.Click,但点击失败:标签被遮挡、页面重渲染或鼠标事件被拦截,导致未能切换到目标通知分区。
Source
Thrown at xiaohongshu/notification.go:190
func (n *NotificationAction) switchTab(ctx context.Context, page *rod.Page, tab NotificationTab) error {
if tab == TabMentions {
return nil
}
label := tabLabels[tab]
elems, err := page.Elements(`.reds-tab-item`)
if err != nil {
return fmt.Errorf("未找到通知分区标签: %w", err)
}
for _, elem := range elems {
text, err := elem.Text()
if err != nil || strings.TrimSpace(text) != label {
continue
}
humanize.Delay(ctx, humanize.BeforeClick)
if err := humanize.Click(elem); err != nil {
return fmt.Errorf("切换到分区 %s 失败: %w", label, err)
}
humanize.Delay(ctx, humanize.AfterClick)
return nil
}
return fmt.Errorf("未找到分区标签 %q", label)
}
// loadUntil 滚动加载,直到条目数够用或没有更多。
func (n *NotificationAction) loadUntil(ctx context.Context, page *rod.Page, tab NotificationTab, limit int) error {
const maxRounds = 20
for range maxRounds {
payload, err := n.readTab(page, tab)
if err != nil {
return err
}
loaded := len(payload.MessageList)
if loaded >= limit || !payload.HasMore {View on GitHub (pinned to 332d196854)
Solutions
- 稍后重试切换
- 滚动确保标签可见后再点击
- 检查是否有弹层遮挡通知页
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at xiaohongshu/notification.go:190 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of xpzouying/xiaohongshu-mcp@332d196854 (2026-09-05).
Data as JSON: /api/errors/8844ee40251f3ab3.
Report an issue: GitHub.