{"record":{"id":"7f235b7ad0bb47f5","repo":"xpzouying/xiaohongshu-mcp","slug":"d","errorCode":null,"errorMessage":"查找上传输入框失败(第%d张)","messagePattern":"查找上传输入框失败\\(第(.+?)张\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"xiaohongshu/publish.go","lineNumber":254,"sourceCode":"\treturn result.Value.Bool(), nil\n}\n\nfunc uploadImages(page *rod.Page, imagesPaths []string) error {\n\tvalidPaths := make([]string, 0, len(imagesPaths))\n\tfor _, path := range imagesPaths {\n\t\tif _, err := os.Stat(path); os.IsNotExist(err) {\n\t\t\tlogrus.Warnf(\"图片文件不存在: %s\", path)\n\t\t\tcontinue\n\t\t}\n\t\tvalidPaths = append(validPaths, path)\n\t\tlogrus.Infof(\"获取有效图片：%s\", path)\n\t}\n\n\t// 逐张上传：每张上传后等待预览出现，再上传下一张\n\tfor i, path := range validPaths {\n\t\tuploadInput, err := findImageUploadInput(page, i == 0)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"查找上传输入框失败(第%d张)\", i+1)\n\t\t}\n\t\tif err := uploadInput.SetFiles([]string{path}); err != nil {\n\t\t\treturn errors.Wrapf(err, \"上传第%d张图片失败\", i+1)\n\t\t}\n\n\t\tslog.Info(\"图片已提交上传\", \"index\", i+1, \"path\", path)\n\n\t\t// 等待当前图片上传完成（预览元素数量达到 i+1），最多等 60 秒\n\t\tif err := waitForUploadComplete(page, i+1); err != nil {\n\t\t\treturn errors.Wrapf(err, \"第%d张图片上传超时\", i+1)\n\t\t}\n\t\ttime.Sleep(1 * time.Second)\n\t}\n\n\treturn nil\n}\n\n// findImageUploadInput 查找图片上传的输入框","sourceCodeStart":236,"sourceCodeEnd":272,"githubUrl":"https://github.com/xpzouying/xiaohongshu-mcp/blob/332d196854a9eac0d2b8c2c0e3d0cc43139d724c/xiaohongshu/publish.go#L236-L272","documentation":"uploadImages 逐张上传循环中 findImageUploadInput 失败（第一张与非首张走不同查找逻辑）：上传输入框未渲染或选择器失效，Wrapf 标明是第几张图片的输入框找不到。","triggerScenarios":"Thrown at xiaohongshu/publish.go:254 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["重试上传流程","检查发布页是否加载完整","更新 findImageUploadInput 的选择器"],"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"}