Auto.js使用心得(一)

软件版本4.1.1 Alpha2

一.关于控件的id选择器,初次使用可能会出现找不到包含该id的控件

解决办法:

1.建议在app.launchApp()等切换界面的操作之后再使用,并且切换操作和id选择操作之间不建议插入sleep(),sleep之后也有可能找不到控件;

2.使用其他选择器进行控件选择。

二.软件并没有直接提供强制结束app进程的功能可使用以下方法解决

1.root方案

function forceCloseApp(appName) { //这里传入的是应用名不是包名
    var packageName = getPackageName(appName);
    var sh = new Shell(true);//注册一个对象运用shell命令,true(真) 以root权限运行代码,默认为falae假
    sh.exec("am force-stop" + " " + packageName); //exec命令执行是"异步"的、非阻塞的。也就是不会等待命令完成后才继续向下执行。
    sh.exitAndWaitFor();//执行"exit"命令并等待执行命令执行完成、退出shell。



2.非root方案(曲线救国)

function forceCloseApp(appName) {
    var packageName = getPackageName(appName);
    app.openAppSetting(packageName);//打开app的详细信息
    if (text("强行停止").findOne().enabled()) {//判断强制停止按钮是否可点击,可点击(enabled值为true)则表示在运行,不可点击(enabled值为false)就代表未运行。
        text("强行停止").findOne().click();
        text("确定").findOne().click();
    }
    back();
}

三.控制台

使用以下方式在新线程中启动

threads.start(function () {
        if (isShowConsole) {
            console.show();
        }
    });

四.提取文本中的数字的正则表达式

//代码举例:
timesText = id("tv_remain_times").findOne().text();
times = timesText.replace(/[^0-9]/ig, "");

五.其他

  1. 调用UiSelector中的函数返回的是一个控件或null,该控件可以使用UiObject中的函数获取相应属性值,一定要先选择控件(findOne()等..)再使用UiObject中的函数;

  2. UISelector在选择的时候,有些界面外的控件也可以选中;

  3. 有些控件是不可点击的,可以尝试寻找其父类,其祖父,其祖祖父,其祖祖祖祖祖祖祖祖祖祖父.parent()*n进行点击。

  4. 建议使用scollBackward、scollForward进行控件的翻页操作,笔者使用scollUp、scollDown时无效。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值