吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 648|回复: 2
收起左侧

[其他原创] auto脚本 测试控件是否存在代码集

[复制链接]
chh322 发表于 2024-8-22 10:03
原来AUTO拟写脚本页面测试控件是否存在或数量多少 便于点击  分享给会用的人
[JavaScript] 纯文本查看 复制代码
// 点击指定位置 (坐标:996, 322)
click(996, 322); 

// 等待加载
for (DDSJ = 1; DDSJ < 11; DDSJ++) {
    sleep(1000); // 暂停1秒
    log("加载等待"); // 记录加载等待状态
}

/*
以下是一些用于查找控件的示例条件:
text = 去抢购 // 查找文本为 "去抢购" 的控件
className = android.widget.Image // 查找类名为 "android.widget.Image" 的控件
text = 20210417024537920f21923 // 查找文本为指定字符串的控件
*/

/* 
以下是一些控件选择器示例:
className("android.widget.TextView") // 查找类名为 "android.widget.TextView" 的控件
className("android.widget.EditText") // 查找类名为 "android.widget.EditText" 的控件(输入框)
className("android.view.View") // 查找类名为 "android.view.View" 的控件
className("android.widget.ImageView") // 查找类名为 "android.widget.ImageView" 的控件
className("android.webkit.WebView") // 查找类名为 "android.webkit.WebView" 的控件(广告视频)
indexInParent("2") // 查找在父控件中的索引为2的控件
id = img_open // 查找ID为 "img_open" 的控件
id = container // 查找ID为 "container" 的控件
text = btn-zf // 查找文本为 "btn-zf" 的控件
className = android.view.View // 查找类名为 "android.view.View" 的控件
indexInParent = 3 // 查找在父控件中的索引为3的控件
indexInParent = 2 // 查找在父控件中的索引为2的控件
className("android.widget.RelativeLayout").findOne().click() // 查找第一个 "android.widget.RelativeLayout" 类型的控件并点击
text = 账号密码登录 // 查找文本为 "账号密码登录" 的控件
desc = 去兑换 // 查找描述为 "去兑换" 的控件
packageName = uni.UNI680DC45 // 查找包名为 "uni.UNI680DC45" 的控件
packageName("com.pingou.life") // 查找包名为 "com.pingou.life" 的控件
*/

// 定义控件变量
// 根据控件的类名和在父控件中的索引查找控件
var 控件 = className("android.view.View").indexInParent("2");

// 输出符合条件的控件数量
log(控件.find().size()); // 输出符合条件的控件数量
// 如果找到4个控件,点击第四个控件
log("if(" + 控件 + ".find().size()==4){" + 控件 + ".find().get(3).click();}") 

// 如果控件存在,点击第一个符合条件的控件
if (控件.exists()) {
    控件.findOne().click(); // 点击第一个符合条件的控件
}
log("if(" + 控件 + ".exists()){" + 控件 + ".findOne().click();}") // 输出点击第一个控件的代码

// 以下是一些备用代码示例,用于操作不同层级的控件
// 点击子控件
// 控件.findOne().child().click(); 
// 点击第三个符合条件的控件
// 控件.find().get(2).click(); 

// 点击父控件
// if (控件.exists()) { 控件.findOne().parent().click(); }
// log("if(" + 控件 + ".exists()){" + 控件 + ".findOne().parent().click();}")

// 点击父父控件
// 控件.findOne().parent().parent().click();

// 点击子控件
// 控件.findOne().child().click();

// 显示找到的第一个控件内容
// log(控件.find()); // 输出所有符合条件的控件
// log(控件.find().get(0)); // 输出第一个符合条件的控件
// log(控件.find().get(0).exists()); // 检查第一个控件是否存在

// 显示找到的第二个控件内容
// log(控件.find().get(1)); // 输出第二个符合条件的控件
// log(控件.find().get(1).exists()); // 检查第二个控件是否存在
// log(控件 + ".find().get(1).click();"); // 输出点击第二个控件的代码
// log(className("android.widget.EditText").find().size() == 2); // 检查输入框数量是否为2

// 获取控件中心位置并点击
// var KJ1 = className("android.widget.RelativeLayout").findOne(); // 查找第一个 "android.widget.RelativeLayout" 类型的控件
// click(KJ1.bounds().centerX(), KJ1.bounds().centerY()); // 点击该控件的中心位置

// 设置输入框的文本
/* 
var editOne = textContains("说点").find().get(0); // 获取第一个包含 "说点" 文本的输入框
var x = editOne.bounds().centerX(); // 获取输入框中心位置的X坐标
var y = editOne.bounds().centerY(); // 获取输入框中心位置的Y坐标
editOne.setText("222"); // 设置输入框的文本为 "222"
*/

// 点击购物车按钮
// desc("购物车").id("button_cart_charge").findOne().click(); // 查找描述为 "购物车" 且ID为 "button_cart_charge" 的控件并点击
// 控件.findOne().click(); // 点击第一个符合条件的控件
// 控件.findone().parent().click(); // 点击第一个符合条件控件的父控件

// 处理退货商品的操作
/* 
while (text("请选择退货商品").exists()) { // 如果存在 "请选择退货商品" 文本的控件
    textContains("库存").findOne().click(); // 点击包含 "库存" 的控件
    sleep(2000); // 等待2秒
    text("确定").findOne().click(); // 点击 "确定" 按钮
    log("进入99退款"); // 记录日志
}
*/

// 文本包含筛选器示例
// textContains("文本") 为当前选择器附加控件 "text 需要包含字符串 str" 的筛选条件。
// textStartsWith(prefix) 为当前选择器附加控件 "text 需要以 prefix 开头" 的筛选条件。
// textEndsWith(suffix) 为当前选择器附加控件 "text 需要以 suffix 结束" 的筛选条件。

// 点击指定位置示例
// click(996, 322); 
// var a = desc("提交订单,按钮").findone(); // 查找描述为 "提交订单,按钮" 的控件
// log(a); // 输出查找结果

// findOne() 方法返回控件,如果找不到会堵塞
// findOne(timeout) 方法在规定时间内找到控件,如果找不到返回 null
// findOnce() 方法找到第一个符合条件的控件并返回,找不到返回 null
// findOnce(i) 方法找到第 i 个符合条件的控件后结束
// find() 方法返回所有符合条件的控件,找不到返回 null
// untilFind() 方法找到控件为止,会阻塞直到找到控件

// 点击文本包含 "说点什么" 的控件
/* 
var kj = textContains("说点什么").findOne(); // 查找包含 "说点什么" 文本的控件
click(kj.bounds().centerX(), kj.bounds().centerY()); // 点击该控件的中心位置
*/

// 点击包含 "账号" 文本的控件
// { 
//     var LJGM = textContains("账号").findOne(); // 查找包含 "账号" 文本的控件
//     sleep(500); // 等待0.5秒
//     toast("触发立即购买"); // 显示 "触发立即购买" 的提示
//     click(LJGM.bounds().centerX(), LJGM.bounds().centerY()); // 点击该控件的中心位置
// }

// 检查是否存在包含 "获得6000金币" 的文本
// if (textContains("获得6000金币").exists()) {
//     console.log("存在"); // 存在时输出 "存在"
// } else { 
//     console.log("不存在"); // 不存在时输出 "不存在"
// }

// 获取控件文档内容
// var yttq = textContains("请等待").find().get(0).text(); // 获取第一个包含 "请等待" 文本的控件的文本内容
// var yttqnum = yttq.replace(/[^0-9]/ig, ""); // 从文本内容中提取数字

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
78765403 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

tomboy666 发表于 2024-8-22 11:11
学习一下哦!
msccreater 发表于 2024-8-22 15:12
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表