xpzouying/xiaohongshu-mcp · error

查找上传输入框失败(第%d张)

Error message

查找上传输入框失败(第%d张)

What it means

uploadImages 逐张上传循环中 findImageUploadInput 失败(第一张与非首张走不同查找逻辑):上传输入框未渲染或选择器失效,Wrapf 标明是第几张图片的输入框找不到。

Source

Thrown at xiaohongshu/publish.go:254

	return result.Value.Bool(), nil
}

func uploadImages(page *rod.Page, imagesPaths []string) error {
	validPaths := make([]string, 0, len(imagesPaths))
	for _, path := range imagesPaths {
		if _, err := os.Stat(path); os.IsNotExist(err) {
			logrus.Warnf("图片文件不存在: %s", path)
			continue
		}
		validPaths = append(validPaths, path)
		logrus.Infof("获取有效图片:%s", path)
	}

	// 逐张上传:每张上传后等待预览出现,再上传下一张
	for i, path := range validPaths {
		uploadInput, err := findImageUploadInput(page, i == 0)
		if err != nil {
			return errors.Wrapf(err, "查找上传输入框失败(第%d张)", i+1)
		}
		if err := uploadInput.SetFiles([]string{path}); err != nil {
			return errors.Wrapf(err, "上传第%d张图片失败", i+1)
		}

		slog.Info("图片已提交上传", "index", i+1, "path", path)

		// 等待当前图片上传完成(预览元素数量达到 i+1),最多等 60 秒
		if err := waitForUploadComplete(page, i+1); err != nil {
			return errors.Wrapf(err, "第%d张图片上传超时", i+1)
		}
		time.Sleep(1 * time.Second)
	}

	return nil
}

// findImageUploadInput 查找图片上传的输入框

View on GitHub (pinned to 332d196854)

Solutions

  1. 重试上传流程
  2. 检查发布页是否加载完整
  3. 更新 findImageUploadInput 的选择器
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at xiaohongshu/publish.go:254 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/7f235b7ad0bb47f5. Report an issue: GitHub.