如何处理随机弹窗和广告类问题?

我们在编写冰狐自动化脚本过程中经常会遇到各种随机出现的弹窗,这种弹窗很讨厌,因为它直接打断了正常的脚本处理逻辑。有两种方法可以解决这类问题

一、使用failed参数

冰狐几乎所有的控件相关函数都支持failed参数,该参数只能填函数,系统在搜索控件失败时会自动调用failed函数。我们就可以在failed函数中处理弹窗,把弹窗点掉,同时也不会打断正常的业务逻辑,也就是说以前的业务逻辑还是不变,执行效率也非常高。强烈推荐该方法。
function main() {
// findView在5次搜索过程中,每次失败都会立即调用dealPopupWindow函数,
// 如果在dealPopupWindow中把弹窗点掉后,findView会继续搜索并正确找到目标控件
var ret = findView('txt:我的', {faild: dealPopupWindow, maxStep: 5});
if (ret.length > 0) {
// 找到目标控件.....
}
}

function dealPopupWindow() {
// 这里搜索弹窗界面的特征控件,注意:maxStep要设置为1,否则会影响效率
var ret = findView('txt:弹窗tag', {maxStep: 1});
if (ret.length > 0) {
// 点击弹窗的关闭按钮
click('txt:关闭');
}
}


二、使用新线程

开启一个线程专门来处理弹窗问题,在该线程中死循环一直检测所有可能出现的弹窗,一旦找到就点击关闭弹窗。
function main() {
var t = new Thread();
t.start(dealPopupWindow);
}

function dealPopupWindow() {
while (true) {
var ret = findView('txt:aaa|txt:bbbb');
if (ret.length > 0) {
// 点击弹窗的关闭按钮
if (ret.tag == 'aaa') {
click('txt:关闭');
} else if (ret.tag == 'bbb') {
click('id:close');
}
}
}
}
商务合作QQ:2231485359
Copyright © 2021-2024 冰狐智能辅助. All rights reserved. 浙ICP备15043866号-4 《冰狐智能辅助服务协议》