From fc531e9783f7d5f5186ae6eed9d7a1e9a28faa16 Mon Sep 17 00:00:00 2001 From: "fengxian.guo" Date: Wed, 8 Apr 2026 12:00:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=B0=8F=E7=BA=A2?= =?UTF-8?q?=E4=B9=A6=E4=B8=8A=E4=BC=A0=E8=A7=86=E9=A2=91=E5=8D=A1=E7=AD=89?= =?UTF-8?q?=E5=BE=85=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E6=8A=8A=E5=8E=9F?= =?UTF-8?q?=E6=9D=A5=E7=9A=84=E7=B2=BE=E5=87=86=E5=AE=9A=E7=82=B9=E6=89=BE?= =?UTF-8?q?=E8=AF=8D=E6=94=B9=E6=88=90=E5=85=A8=E5=B1=80=E6=A8=A1=E7=B3=8A?= =?UTF-8?q?=E8=AF=86=E3=80=81=E5=A4=9A=E4=BF=A1=E5=8F=B7=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uploader/xiaohongshu_uploader/main.py | 28 ++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/uploader/xiaohongshu_uploader/main.py b/uploader/xiaohongshu_uploader/main.py index 37fdd44..b069b54 100644 --- a/uploader/xiaohongshu_uploader/main.py +++ b/uploader/xiaohongshu_uploader/main.py @@ -496,18 +496,32 @@ class XiaoHongShuVideo(XiaoHongShuBaseUploader): preview_new = await upload_input.query_selector( 'xpath=following-sibling::div[contains(@class, "preview-new")]') if preview_new: - stage_elements = await preview_new.query_selector_all('div.stage') - upload_success = False - for stage in stage_elements: - text_content = await page.evaluate('(element) => element.textContent', stage) - if '上传成功' in text_content or '分辨率' in text_content: - upload_success = True - break + # 获取整个预览区域的文本,更鲁棒地判断上传状态 + all_text = await preview_new.inner_text() + upload_success = any(keyword in all_text for keyword in ['上传成功', '分辨率', '重新上传', '编辑封面', '已上传', '已选择', '100%']) + + if not upload_success: + # 检查是否有特定的状态码或百分比 + stage_elements = await preview_new.query_selector_all('div.stage') + for stage in stage_elements: + text_content = await page.evaluate('(element) => element.textContent', stage) + if '上传成功' in text_content or '分辨率' in text_content: + upload_success = True + break + if upload_success: xiaohongshu_logger.success(_msg("🥳", "视频已经传完啦")) break + + if self.debug: + xiaohongshu_logger.debug(_msg("🧍", f"预览区域内容: {all_text.strip().replace('\\n', ' ')}")) xiaohongshu_logger.debug(_msg("🧍", "还没看到上传成功标识,小人继续等一会")) else: + # 尝试检查标题输入框是否已经出现,如果是,说明已经进入编辑状态 + title_container = page.locator('input[placeholder*="填写标题"]') + if await title_container.count() > 0 and await title_container.is_visible(): + xiaohongshu_logger.success(_msg("🥳", "虽然没看到预览区,但标题框出来了,小人继续")) + break xiaohongshu_logger.debug(_msg("🧍", "还没拿到预览区域,小人继续等一会")) except Exception as e: xiaohongshu_logger.debug(_msg("😵", f"上传状态还没稳定下来,小人继续观察: {e}"))