diff --git a/xiaohongshu/publish.go b/xiaohongshu/publish.go index 79480bb..bcb6628 100644 --- a/xiaohongshu/publish.go +++ b/xiaohongshu/publish.go @@ -295,6 +295,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 } @@ -341,6 +344,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 e317922..54508fc 100644 --- a/xiaohongshu/publish_video.go +++ b/xiaohongshu/publish_video.go @@ -150,6 +150,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 }