节点函数
说明
- 节点模块函数主要是跟节点操作相关联
- 该模块没有模块前缀,可以直接调用函数
- 建议获取节点后进行锁定节点后,在进行查找,防止部分使用parent或者child函数问题
getNodeInfo 获取节点集合
- timeout 超时时间,单位毫秒
- @return
{array}
节点对象集合**
function main() {
let nodes = text("aaa").getNodeInfo(0)
if (nodes){
logd(JSON.stringify(nodes))
for (let i = 0; i < nodes.length; i++) {
logd(JSON.stringify(nodes[i]))
logd(nodes[i].text)
logd(nodes[i].bounds.top)
logd(nodes[i].bounds.centerX())
}
}
}
main();
getOneNodeInfo 获取单节点
- timeout 超时时间,单位毫秒
- @return
{NodeInfo}
节点对象
function main() {
let node = text("aaa").getOneNodeInfo(0);
if (node){
logd(JSON.stringify(node));
logd(node.text)
logd(node.bounds.top)
logd(node.bounds.centerX())
}
}
main();
以下是选择器函数
xpath 选择
- xpath选择器,xpath技术请看 : https://www.jianshu.com/p/c205334122b3 和 https://www.runoob.com/xpath/xpath-syntax.html
- xpath使用请到idea的节点面板查看xpath属性以及测试xpath功能
- @param value 例如 //node[@value='易点云测'] 代表选取文本等于易点云测的节点
function main() {
//获取选择器对象
var selector = xpath("//node[@value='易点云测']");
let n = selector.getNodeInfo(1000);
logd(JSON.stringify(n))
}
main();
id id 属性全匹配
- id 属性全匹配
function main() {
//开始再这里编写代码了!!
logd("检查自动化环境...")
//如果自动化服务正常
if (!autoServiceStart(3)) {
logd("自动化服务启动失败,无法执行脚本")
exit();
return;
}
logd("开始执行脚本...")
// 先释放老的数据
releaseNode();
// 锁定新的节点数据
lockNode();
// 进入查找状态
// 按照 id 查找
let nd = id("设置").getOneNodeInfo(1000)
if (nd) {
console.log("id 查找 节点信息 {} ", JSON.stringify(nd))
// 如果找到了 就点击
let c = clickPoint(nd.bounds.centerX(), nd.bounds.centerY());
logd("点他: {}", c)
} else {
console.log("id 未查找 节点信息 ")
}
// 按照 正则表达式匹配
nd = idMatch(".*置.*").getNodeInfo(1000)
if (nd) {
console.log("idMatch 查找 节点信息 {} ", JSON.stringify(nd))
} else {
console.log("idMatch 未查找 节点信息 ")
}
// 先释放老的数据
releaseNode();
}
function autoServiceStart(time) {
for (let i = 0; i < time; i++) {
if (isServiceOk()) {
return true;
}
let started = startEnv();
logd("第" + (i + 1) + "次启动服务结 果: " + started);
if (isServiceOk()) {
return true;
}
}
return isServiceOk();
}
main()
idMatch id 属性正则匹配
- id 属性正则匹配
function main() {
//开始再这里编写代码了!!
logd("检查自动化环境...")
//如果自动化服务正常
if (!autoServiceStart(3)) {
logd("自动化服务启动失败,无法执行脚本")
exit();
return;
}
logd("开始执行脚本...")
// 先释放老的数据
releaseNode();
// 锁定新的节点数据
lockNode();
// 进入查找状态
// 按照 id 查找
let nd = id("设置").getOneNodeInfo(1000)
if (nd) {
console.log("id 查找 节点信息 {} ", JSON.stringify(nd))
// 如果找到了 就点击
let c = clickPoint(nd.bounds.centerX(), nd.bounds.centerY());
logd("点他: {}", c)
} else {
console.log("id 未查找 节点信息 ")
}
// 按照 正则表达式匹配
nd = idMatch(".*置.*").getNodeInfo(1000)
if (nd) {
console.log("idMatch 查找 节点信息 {} ", JSON.stringify(nd))
} else {
console.log("idMatch 未查找 节点信息 ")
}
// 先释放老的数据
releaseNode();
}
function autoServiceStart(time) {
for (let i = 0; i < time; i++) {
if (isServiceOk()) {
return true;
}
let started = startEnv();
logd("第" + (i + 1) + "次启动服务结果: " + started);
if (isServiceOk()) {
return true;
}
}
return isServiceOk();
}
main()
key key属性全匹配
- key 属性全匹配
function main() {
//开始再这里编写代码了!!
logd("检查自动化环境...")
//如果自动化服务正常
if (!autoServiceStart(3)) {
logd("自动化服务启动失败,无法执行脚本")
exit();
return;
}
logd("开始执行脚本...")
// 先释放老的数据
releaseNode();
// 锁定新的节点数据
lockNode();
// 进入查找状态
// key
let nd = key("设置").getOneNodeInfo(1000)
if (nd) {
console.log("key 查找 节点信息 {} ", JSON.stringify(nd))
// 如果找到了 就点击
let c = clickPoint(nd.bounds.centerX(), nd.bounds.centerY());
logd("点他: {}", c)
} else {
console.log("key 未查找 节点信息 ")
}
// 按照 正则表达式匹配
nd = keyMatch(".*置.*").getNodeInfo(1000)
if (nd) {
console.log("keyMatch 查找 节点信息 {} ", JSON.stringify(nd))
} else {
console.log("keyMatch 未查找 节点信息 ")
}
// 先释放老的数据
releaseNode();
}
function autoServiceStart(time) {
for (let i = 0; i < time; i++) {
if (isServiceOk()) {
return true;
}
let started = startEnv();
logd("第" + (i + 1) + "次启动服务结果: " + started);
if (isServiceOk()) {
return true;
}
}
return isServiceOk();
}
main()
keyMatch key
- key 属性正则匹配
function main() {
//开始再这里编写代码了!!
logd("检查自动化环境...")
//如果自动化服务正常
if (!autoServiceStart(3)) {
logd("自动化服 务启动失败,无法执行脚本")
exit();
return;
}
logd("开始执行脚本...")
// 先释放老的数据
releaseNode();
// 锁定新的节点数据
lockNode();
// 进入查找状态
let nd = keyMatch("设置").getOneNodeInfo(1000)
if (nd) {
console.log("key 查找 节点信息 {} ", JSON.stringify(nd))
// 如果找到了 就点击
let c = clickPoint(nd.bounds.centerX(), nd.bounds.centerY());
logd("点他: {}", c)
} else {
console.log("keyMatch 未查找 节点信息 ")
}
// 按照 正则表达式匹配
nd = keyMatch(".*置.*").getNodeInfo(1000)
if (nd) {
console.log("keyMatch 查找 节点信息 {} ", JSON.stringify(nd))
} else {
console.log("keyMatch 未查找 节点信息 ")
}
// 先释放老的数据
releaseNode();
}
function autoServiceStart(time) {
for (let i = 0; i < time; i++) {
if (isServiceOk()) {
return true;
}
let started = startEnv();
logd("第" + (i + 1) + "次启动服务结果: " + started);
if (isServiceOk()) {
return true;
}
}
return isServiceOk();
}
main()
type type属性全匹配
- type 属性全匹配
function main() {
//开始再这里编写代码了!!
logd("检查自动化环境...")
//如果自动化服务正常
if (!autoServiceStart(3)) {
logd("自动化服务启动失败,无法执行脚本")
exit();
return;
}
logd("开始执行脚本...")
// 先释放老的数据
releaseNode();
// 锁定新的节点数据
lockNode();
// 进入查找状态
// 按照 type 查找
let nd = type("Item").getOneNodeInfo(1000)
if (nd) {
console.log("type 查找 节点信息 {} ", JSON.stringify(nd))
// 如果找到了 就点击
let c = clickPoint(nd.bounds.centerX(), nd.bounds.centerY());
logd("点他: {}", c)
} else {
console.log("label 未查找 节点信息 ")
}
// 按照 type 正则表达式匹配
nd = typeMatch(".*Item.*").getNodeInfo(1000)
if (nd) {
console.log("typeMatch 查找 节点信息 {} ", JSON.stringify(nd))
} else {
console.log("typeMatch 未查找 节点信息 ")
}
// 先释放老的数据
releaseNode();
}
function autoServiceStart(time) {
for (let i = 0; i < time; i++) {
if (isServiceOk()) {
return true;
}
let started = startEnv();
logd("第" + (i + 1) + "次启动服务结果: " + started);
if (isServiceOk()) {
return true;
}
}
return isServiceOk();
}
main()