{"record":{"id":"ac3224b7b034fff6","repo":"xpzouying/xiaohongshu-mcp","slug":"w-ac3224","errorCode":null,"errorMessage":"无法点击发送: %w","messagePattern":"无法点击发送: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"xiaohongshu/notification_reply.go","lineNumber":84,"sourceCode":"\t}\n\n\tif err := verifyReplyTarget(input, target.from().Nickname); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := humanize.Type(ctx, input, content); err != nil {\n\t\treturn nil, fmt.Errorf(\"无法输入回复内容: %w\", err)\n\t}\n\thumanize.Delay(ctx, humanize.AfterType)\n\n\tsubmit, err := item.Element(`button.submit`)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"未找到发送按钮: %w\", err)\n\t}\n\n\thumanize.Delay(ctx, humanize.BeforeSubmit)\n\tif err := humanize.Click(submit); err != nil {\n\t\treturn nil, fmt.Errorf(\"无法点击发送: %w\", err)\n\t}\n\n\tif err := waitReplyAccepted(item, 8*time.Second); err != nil {\n\t\treturn nil, err\n\t}\n\n\thumanize.Delay(ctx, humanize.AfterInteract)\n\n\tlogrus.Infof(\"通知回复成功: comment=%s\", commentID)\n\treturn &NotificationReplyResult{\n\t\tCommentID: commentID,\n\t\tNickname:  target.from().Nickname,\n\t\tFeedID:    target.Item.ID,\n\t\tContent:   content,\n\t}, nil\n}\n\n// locate 找到目标评论在当前分区里的位置，必要时滚动加载。","sourceCodeStart":66,"sourceCodeEnd":102,"githubUrl":"https://github.com/xpzouying/xiaohongshu-mcp/blob/332d196854a9eac0d2b8c2c0e3d0cc43139d724c/xiaohongshu/notification_reply.go#L66-L102","documentation":"humanize.Click failed on the submit button, so the reply was never sent. The typed content is lost. Typical causes: button detached after re-render, covered by an overlay, or the click was intercepted by anti-bot checks.","triggerScenarios":"humanize.Click(submit) errors during Reply — element handle stale, overlay blocking, or browser throttling the synthetic click.","commonSituations":"Modal or popup intercepting clicks; page re-rendered between lookup and click; rate-limiting overlay from too-frequent replies; headless environment flagged by anti-bot.","solutions":["Retry the call with backoff — transient overlays usually clear","Slow down reply frequency to avoid anti-bot rate limiting","Ensure a valid logged-in session without login-wall overlays","Update go-rod/humanize for known click reliability fixes"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"_, err := n.Reply(ctx, commentID, content)\nif err != nil && strings.Contains(err.Error(), \"无法点击发送\") {\n    time.Sleep(3 * time.Second)\n    _, err = n.Reply(ctx, commentID, content)\n}","preventionTips":["Rate-limit reply operations to avoid anti-bot overlays","Maintain a healthy logged-in session","Retry submit failures with backoff"],"tags":["click","submit","go-rod","xiaohongshu"],"backgroundTag":"element-click-failed","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"}