{"record":{"id":"59b454df8becb3fd","repo":"xpzouying/xiaohongshu-mcp","slug":"w-59b454","errorCode":null,"errorMessage":"无法找到回复按钮: %w","messagePattern":"无法找到回复按钮: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"xiaohongshu/comment_feed.go","lineNumber":149,"sourceCode":"\ttime.Sleep(2 * time.Second)\n\n\t// 使用 Go 实现的查找逻辑\n\tcommentEl, err := findCommentElement(ctx, page, commentID, userID)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"无法找到评论: %w\", err)\n\t}\n\n\t// 滚动到评论位置\n\tlogrus.Info(\"滚动到评论位置...\")\n\tcommentEl.MustScrollIntoView()\n\thumanize.Delay(ctx, humanize.BetweenScroll)\n\n\tlogrus.Info(\"准备点击回复按钮\")\n\n\t// 查找并点击回复按钮\n\treplyBtn, err := commentEl.Element(\".right .interactions .reply\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"无法找到回复按钮: %w\", err)\n\t}\n\n\tif err := humanize.Click(replyBtn); err != nil {\n\t\treturn fmt.Errorf(\"点击回复按钮失败: %w\", err)\n\t}\n\n\thumanize.Delay(ctx, humanize.AfterClick)\n\n\t// 查找回复输入框\n\tinputEl, err := page.Element(\"div.input-box div.content-edit p.content-input\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"无法找到回复输入框: %w\", err)\n\t}\n\n\t// 输入内容\n\tif err := humanize.Type(ctx, inputEl, content); err != nil {\n\t\treturn fmt.Errorf(\"输入回复内容失败: %w\", err)\n\t}","sourceCodeStart":131,"sourceCodeEnd":167,"githubUrl":"https://github.com/xpzouying/xiaohongshu-mcp/blob/332d196854a9eac0d2b8c2c0e3d0cc43139d724c/xiaohongshu/comment_feed.go#L131-L167","documentation":"ReplyToComment 已定位到评论元素，但在其 .right .interactions .reply 子节点上找不到回复按钮：该评论关闭了回复、按钮尚未渲染，或 DOM 结构与选择器不符。","triggerScenarios":"Thrown at xiaohongshu/comment_feed.go:149 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["等待页面渲染完成后重试","更新 .reply 选择器以匹配当前页面结构","确认目标评论允许回复"],"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-14T00:17:10.932Z"}