工具类使用

371 阅读2分钟

VScode

  • VScode 格式化 :ctrl+AFK

hamibot

  • 通过text方式获取控件(包含str) textContains(str)

  • 通过text方式获取控件(前缀) textStartsWith(prefix)

  • 父子集 parent()、child()

  • 配置外部限制条件

const {xxx} = hamibot.env

  • 应用是否安装

getPackageName()

  1. match()
var  str =  "123"
var reg = RegExp(/3/);
if(str.match(reg)){
//包含;
}

2.indexOf()

var str =  "123"
console.log(str.indexOf("2" ) != -1);  // true
  • 遍历
className('AbsListView')
  .findOne()
  .children()
  .forEach(function(child) {
    log(child.className());
  });
  • 遍历点击 var b = xxx.bounds();

click(b.centerX(), b.centerY())

  • 返回子控件数目(number) childCount();

  • 函数定义

function(){}

  • 弹出提醒框

alert()

  • 定时器用法

setTimeout(callback, delay[, ...args])(只能执行一次)

setInterval(m,n) (无限循环)

m :运行的方法或代码

n:需要等待的时间

关闭setinterval :clearInterval()

function m(){
 console.log('hello')
 }
 
 setTimeout(m,10)
 
 //代码在规定时间后执行  只执行一次
 
 setInterval(m,5000)
 
 //代码在规定时间后执行  无限执行

function m(){
 console.log('hello')
 }
 
 setInterval(m)
 //每隔n 就会运行一次代码
 clearInterval(m)
  • 异常处理(明确的找到代码问题所在,保证代码不会异常中断)

try{}catch(e){}

  • 滑动(从上往下滑) className('xxx') .scrollable() .findOne() .scrollForward();

  • 滑动(从下往上滑)

className('xxx').depth(xx) .scrollable() .findOne() .scrollUp();

  • 多线程(找到查询按钮时 点击此按钮(只需要执行一次就可以))
threads.start(function () {
   var Multithreading;
      if (Multithreading = classNameContains("Button").textContains("立即开始").findOne(2000)) {
          Multithreading.click();
      }
  });

  • js 数据类型转换 json()

application()

  • 请求截图 requestScreenCapture(false or true);

  • 执行截图 captureScreen('/xxx.png');

  • 读取照片 var src = images.read('/sdcard/1.png');

  • 剪切照片并返回剪切区域照片

images.clip(img, x, y, w, h)

img  图片

x number 剪切区域的左上角横坐标

y number 剪切区域的左上角纵坐标

w number 剪切区域的宽度

h number 剪切区域的高度

var clip = images.clip(src, 100, 100, 400, 400);

images.save(clip, '/sdcard/clip.png');

  • 上传文件时接口的使用
function image(){
var url = 'http://192.168.1.16:9528/api/1.0.0/open/pub/file/image' 
var res = http.postMultipart(url,  {Filedata: ['screencapture.png', 'image/png','/sdcard/screencapture.png'], });  
let result_json = res.body.json().data.file_url
log(result_json);  
return result_json
}  

  • js url编码 encodeURIComponent("xxx")

  • 子集数量 childCount()

  • 生成时间

let date=new Date();

date.getYear();//获取当前年份(2位),122

date.getFullYear();//获取完整的年份(4位),2022

date.getMonth();//获取当前月份(0-11,0代表1月),因为从0开始,所以结果要+1才是正确月份,11

date.getDate();//获取当前日(1-31),6

date.getDay();//获取当前星期X(0-6,0代表星期天),2

date.getTime();//获取当前时间(从1970.1.1开始的毫秒数),1670317542537

date.getHours();//获取当前小时数(0-23),17

date.getMinutes();//获取当前分钟数(0-59),6

date.getSeconds();//获取当前秒数(0-59),47

date.getMilliseconds();//获取当前毫秒数(0-999),984

date.toLocaleDateString();//获取当前日期,2022/12/6

date.toLocaleTimeString();//获取当前时间,下午5:07:34

date.toLocaleString();//获取日期与时间,2022/12/6 下午5:07:47