fix: 元素抓取生成精确选择器,无属性元素用锚点祖先限定;抖音点赞找不到按钮不再双击屏幕
- 元素选择器生成:无 resource-id/text 的元素改用最近有唯一属性祖先限定范围, 并带同 class 兄弟序号消歧(如 //*[@resource-id=".."]/RelativeLayout[3]), 不再给裸 class(如 //android.widget.ImageView 会误匹配其他元素) - 仍无法限定的宽泛选择器标记 broad,前端元素列表显示"⚠宽泛"提示 - 抖音 like 动作:by_element 找不到点赞按钮改为跳过,不再双击屏幕中央(避免误触)
This commit is contained in:
@@ -2,9 +2,9 @@
|
||||
|
||||
两种方式:
|
||||
by_element — 用 xpath 找右侧红心按钮点击(相对定位,不依赖视频卡片序号)
|
||||
double_click — 双击屏幕中央(兜底,不依赖元素,抖音"双击点赞"手势)
|
||||
double_click — 双击屏幕中央(需明确选择此方式,抖音"双击点赞"手势)
|
||||
|
||||
定位器随抖音版本变,by_element 找不到会自动回退双击,不会卡住。
|
||||
by_element 找不到点赞按钮时**跳过本次,不点屏幕**(避免直播/无按钮页误触)。
|
||||
要适配新版本抖音:用 weditor 重新抓当前界面,调整下面定位逻辑。
|
||||
"""
|
||||
from core.actions import BaseAction, register_action, should_trigger
|
||||
@@ -33,7 +33,10 @@ class LikeAction(BaseAction):
|
||||
if self._like_by_element(d):
|
||||
worker.set_action("点赞(红心)")
|
||||
return True
|
||||
# 找不到红心,回退双击
|
||||
# 找不到点赞按钮:跳过本次,不点屏幕,避免误触(如直播/无点赞按钮的页面)
|
||||
worker.set_action("点赞(未找到,跳过)")
|
||||
return False
|
||||
# 仅在明确选择 double_click 方式时才双击屏幕
|
||||
ok = self._double_click_center(d)
|
||||
if ok:
|
||||
worker.set_action("点赞(双击)")
|
||||
|
||||
Reference in New Issue
Block a user