feat(发布计划): 新增「校验页面」步骤(expect_el)—— 每一步先确认上一步真的完成了

用户要求:"进行每一步的时候先校验上一步有没有完成,比如相册界面肯定有特征,如果没有到相册界面
就出现执行,你看看怎么处理" → 方案 A:新增只做校验、不带副作用的步骤。

· tasks/generic/task.py:新步骤 expect_el
  - 参数:特征元素选择器 / timeout(10) / what("在等什么") / on_missing
  - on_missing:skip_rest(默认,**跳过本轮剩余步骤** —— 这一条不发、换下一个号) / notify / stop
  - 为此加了 worker 级的 `_skip_rest`:_exec_steps 每步前检查,foreach_account 每轮复位
· 骨架:关键点击前各插一个 —— 相册页(//*[@text='所有照片']) → 素材已选中(desc 选择/预览)
  → 剪辑页(desc 文字/话题) → 发布页(含'添加标题'/'添加作品描述') → 发布按钮
· 通知:新增 task.page.mismatch(页面不对,本轮剩余步骤已跳过)
· 昵称选择器改**两版通吃**(实测 A06=40.7.0):xpath 联合
  `//*[@resource-id="…:id/tkv"] | //*[@resource-id="…:id/tk+"]`
  —— 40.7 是 tkv、40.6 是 tk+,联合在 40.7 上实测能读到名字;.env(dev)已改,切号入口两版同为 desc=切换账号
· 前端:编辑器面板 + 参数表单 + 发布页就地编辑字段表都认 expect_el
· 文档:TASK_DEV §3(27→28 种)+ §4.7("每步先校验上一步")、NOTIFY、research §七·补(40.7.0 对照表
  + 联合 xpath + 各页特征 + "别按坐标点页签"的坑)、.env.example
· 测试:新增 scripts/tests/test_expect_el.py(特征在/不在、三种 on_missing、选择器为空),全套 7 个用例通过
This commit is contained in:
2026-10-12 11:49:48 +08:00
parent 50255af899
commit 10d2eb8334
12 changed files with 328 additions and 14 deletions
+6
View File
@@ -734,6 +734,12 @@ var _RP_FIELDS = {
['album_dir', '推到手机哪个目录', 'text'],
['to_clipboard', '标题写进手机剪贴板', 'chk'],
['max_same_run', '一次推几条', 'num']],
expect_el: [['what', '说明(如"应在相册页")', 'text'],
['selector_type', '选择器类型', 'seltype'],
['selector_value', '等它出现(这一页的特征元素)', 'selval'],
['timeout', '最多等(秒)', 'num'],
['on_missing', '等不到时', 'sel', [['skip_rest', '跳过本轮剩余步骤(推荐)'],
['notify', '只通知、继续'], ['stop', '停本设备']]]],
read_account_name: [['selector_type', '选择器类型', 'seltype'],
['selector_value', '选择器值(抖音「我」页的昵称)', 'selval'],
['timeout', '超时(秒)', 'num'],