Closed Snoopy1866 closed 1 year ago
我找到了 excludeMatches
参数,将代码修改如下:
import { defineAppConfig } from '../types';
export default defineAppConfig({
id: 'com.netease.newsreader.activity',
name: '网易新闻',
groups: [
{
enable: false,
key: 0,
name: '首页信息流广告',
desc: '点击广告卡片x关闭按钮-关闭反馈理由弹窗',
activityIds: 'com.netease.nr.phone.main.MainActivity',
rules: [
{
preKeys: [1],
name: '首页信息流广告-反馈理由',
matches: '[text="不感兴趣"]',
snapshotUrls: 'https://gkd-kit.gitee.io/import/12639752',
},
{
key: 1,
matches: 'TextView[text="广告"] +(2) ImageView',
excludeMatches:
'[text="反馈成功"] - ImageView < LinearLayout + [text="将减少此类内容的推荐"]',
snapshotUrls: 'https://gkd-kit.gitee.io/import/12639751',
},
],
},
],
});
实测可行,不知道有没有什么潜在的问题
实测可行,不知道有没有什么潜在的问题
如果页面节点上同时存在两个广告卡片,这个规则点击第一个广告卡片后第二个广告卡片就不能继续点击了
可以使用
FrameLayout[childCount=1] >5 TextView[text="广告"] +2 ImageView[clickable=true]
来判断,因为出现 反馈成功后
,这个小区域的节点结构会发生变化,导致多出来一部分节点,从而导致父节点的 childCount=2
信息流广告快照:https://gkd-kit.gitee.io/import/12639751 反馈理由快照:https://gkd-kit.gitee.io/import/12639752 反馈后快照:https://gkd-kit.gitee.io/import/12639757
我书写的规则如下:
上述规则会自动点击信息流广告的×,并指定点击“不敢兴趣”,但这个 App 并不会直接关掉广告,而是告知反馈成功,导致原本的×还保留在界面中,造成反复触发规则。如何才能在点击“不敢兴趣”后,出现“反馈成功”,停止对界面进行检测。