zhensolid пре 8 месеци
родитељ
комит
c71d2db73b
1 измењених фајлова са 38 додато и 17 уклоњено
  1. 38 17
      autowrite_day.py

+ 38 - 17
autowrite_day.py

@@ -31,12 +31,14 @@ async def run(playwright):
 
     # 你可以在这里自定义要填写的内容
     summary_text = """
-    今日完成日报自动化脚本开发
-    修复了异常处理bug
+    一、今日完成CRM脚本开发
+    二、完成小程序测试工作
+    三、修复了异常处理bug
     """
     plan_text = """
-    明天继续完善自动化脚本
-    增加更多异常场景测试
+    一、明天继续完善脚本
+    二、小程序工人付费工作完善
+    三、增加更多异常场景测试
     """
     summary_html = text_to_div_html(summary_text)
     plan_html = text_to_div_html(plan_text)
@@ -74,13 +76,14 @@ async def run(playwright):
             await page.wait_for_selector('div.TitleBarBtn_title__dKAyV:text("填写")', timeout=60000)
             await page.click('div.TitleBarBtn_title__dKAyV:text("填写")', delay=100)
 
-            # 等待操作完成
+            # 等待操作完成,确保页面完全加载
             await asyncio.sleep(5)
 
+            # 查找所有可编辑的输入框
             editors = await page.query_selector_all('.maileditor-editorview[contenteditable="true"]')
             print("找到输入框数量:", len(editors))
 
-            # 打印每个输入框的父级HTML,帮助确认 data-qid
+            # 打印每个输入框的父级HTML,帮助确认 data-qid,每次打开data-qid都会不同所以不准确
             # for i, editor in enumerate(editors):
             #     parent = await editor.evaluate_handle('el => el.closest("div.question")')
             #     parent_html = await parent.evaluate('el => el.outerHTML')
@@ -89,17 +92,35 @@ async def run(playwright):
             # if len(editors) >= 2:
             #     await editors[0].evaluate(f'el => el.innerHTML = `{summary_html}`')
             #     await editors[1].evaluate(f'el => el.innerHTML = `{plan_html}`')
-                # 今日工作总结
-            await page.locator('div.question:has-text("今日工作总结") .maileditor-editorview[contenteditable="true"]').evaluate(
-                    f'el => el.innerHTML = `{summary_html}`'
-            )
-                # 明日工作计划
-            await page.locator('div.question:has-text("明日工作计划") .maileditor-editorview[contenteditable="true"]').evaluate(
-                    f'el => el.innerHTML = `{plan_html}`'
-            )
-                
-
-            # 等待操作完成
+
+            # 今日工作总结输入
+            # 1. 先点击输入框,确保获得焦点
+            await page.locator('div.question:has-text("今日工作总结") .maileditor-editorview[contenteditable="true"]').click()
+            # 2. 使用键盘输入方式模拟真实输入,这样可以触发输入事件
+            await page.keyboard.type(summary_text)
+            # 3. 等待输入完成,确保内容被正确输入
+            await asyncio.sleep(2)
+            
+            # 明日工作计划输入
+            # 1. 先点击输入框,确保获得焦点
+            await page.locator('div.question:has-text("明日工作计划") .maileditor-editorview[contenteditable="true"]').click()
+            # 2. 使用键盘输入方式模拟真实输入
+            await page.keyboard.type(plan_text)
+            # 3. 等待输入完成
+            await asyncio.sleep(2)
+
+            # 等待内容保存
+            # 给系统足够的时间来保存输入的内容
+            await asyncio.sleep(5)
+
+            # 点击提交按钮
+            # 1. 等待提交按钮出现
+            await page.wait_for_selector('button.FillFooter_confirm__0ClPl', timeout=60000)
+            # 2. 点击提交按钮,添加延迟模拟真实点击
+            await page.click('button.FillFooter_confirm__0ClPl', delay=100)
+            
+            # 等待提交完成
+            # 给系统足够的时间来处理提交操作
             await asyncio.sleep(5)
 
         finally: