|
|
@@ -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:
|