选择器&节点
说明
这个章节主要讲解选择器类使用和节点信息类
选择器对象
- 选择器对象是支持级联选择,可以在无法直接选择到元素的时候,先通过选择父级后再选择子级
- 选择器部分支撑正则匹配,请参考java的正则语法,教程
xpath 选择
- xpath选择器,xpath技术请看 : https://www.jianshu.com/p/c205334122b3 和 https://www.runoob.com/xpath/xpath-syntax.html
- xpath使用请到idea的节点面板查看xpath属性以及测试xpath功能
- 适配EC 10.12.0+
- @param value 例如 //node[@text='易点云测'] 代表选取文本等于易点云 测的节点
function main() {
//获取选择器对象
var selector = xpath("//node[@clz='android.widget.TextView']");
let n = selector.getNodeInfo(1000);
logd(JSON.stringify(n))
}
main();
text属性选择
全文本匹配
function main() {
//获取选择器对象
var selector = text("设置");
click(selector);
}
main();
正则匹配
function main() {
//获取选择器对象
var selector = textMatch(".*设置.*");
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
id 属性选择
全量匹配
function main() {
//获取选择器对象
var selector = id("com.xx:id/a1");
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
正则匹配
function main() {
//获取选择器对象
var selector = idMatch(".*id8.*");
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
clz 属性选择
全量匹配
function main() {
//获取选择器对象
var selector = clz("android.widget.TextView");
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
正则匹配
function main() {
//获取选择器对象
var selector = clzMatch(".*TextView.*");
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
pkg 属性选择
全量匹配
function main() {
//获取选择器对象
var selector = pkg("com.xx");
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
正则匹配
function main() {
//获取选择器对象
var selector = pkgMatch(".*tencent.*");
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
desc 文本属性选择
全量匹配
function main() {
//获取选择器对象
var selector = desc("我是描述");
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
正则匹配
function main() {
//获取选择器对象
var selector = descMatch(".*描述.*");
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main()
深度和绘制顺序匹配
drawingOrder
function main() {
//获取选择器对象
var selector = drawingOrder(1);
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
depth
function main() {
//获取选择器对象
var selector = depth(1);
var result = click(selector);
if (result) {
toast("点击成功");
} else {
toast("点击失败");
}
}
main();
其他匹配规则
visible 可视化属性匹配
- 按照属性 visible 进行匹配
- @param value 字符串
- @return
{S}
节点选择器
function main() {
var node = visible(true).getOneNodeInfo(1000);
logd("node " + node);
}
main();