diff --git a/xiaohongshu/publish.go b/xiaohongshu/publish.go index 8f6b20e..1d4ae9e 100644 --- a/xiaohongshu/publish.go +++ b/xiaohongshu/publish.go @@ -293,6 +293,9 @@ func submitPublish(page *rod.Page, title, content string, tags []string, schedul if err := contentElem.Input(content); err != nil { return errors.Wrap(err, "输入正文失败") } + if err := waitAndClickTitleInput(titleElem); err != nil { + return err + } if err := inputTags(contentElem, tags); err != nil { return err } @@ -325,6 +328,17 @@ func submitPublish(page *rod.Page, title, content string, tags []string, schedul return nil } +// waitAndClickTitleInput 在填写正文后等待 1 秒并回点标题输入框,增强后续交互稳定性 +func waitAndClickTitleInput(titleElem *rod.Element) error { + slog.Info("正文填写完成,准备等待后回点标题输入框") + time.Sleep(1 * time.Second) + if err := titleElem.Click(proto.InputMouseButtonLeft, 1); err != nil { + return errors.Wrap(err, "回点标题输入框失败") + } + slog.Info("已回点标题输入框,继续后续发布流程") + return nil +} + // 检查标题是否超过最大长度 func checkTitleMaxLength(page *rod.Page) error { has, elem, err := page.Has(`div.title-container div.max_suffix`) diff --git a/xiaohongshu/publish_video.go b/xiaohongshu/publish_video.go index 5ea7263..403665e 100644 --- a/xiaohongshu/publish_video.go +++ b/xiaohongshu/publish_video.go @@ -149,6 +149,9 @@ func submitPublishVideo(page *rod.Page, title, content string, tags []string, sc if err := contentElem.Input(content); err != nil { return errors.Wrap(err, "输入正文失败") } + if err := waitAndClickTitleInput(titleElem); err != nil { + return err + } if err := inputTags(contentElem, tags); err != nil { return err }