解答贴!只回复大概思路命令,不给伸手党源码

为了更快提升我自己,也为了提升大家更快理解auto.js命令和程序逻辑思维特开贴解答。欢迎大家踊跃提问和帮助解答提供思路扩充自己。

注意:
!不欢迎伸手党 !
可回答相应思路和类似的简单例子和相应用到的命令。
或者某命令的使用方法
顺便也谢谢在此帖回答帮助其他人的基友。

另外: 本软件作者大佬也是重度基友
看主题肤色一纵排的基*色.哈哈~~~

最后由 1912380084 编辑

console.show();
toastLog(device.width+","+device.height);
events.observeTouch(); //注册触摸监听器
events.onTouch(function(p){ //触摸事件发生时, 打印出触摸的点的坐标
log(p.x + ", " + p.y); });
上面这段的日志如下:
12:38:22.815/D: 1440,2560
12:38:36.100/D: 3759, 2008

第一行是toastLog(device.width+","+device.height);的输出
第二行是触摸的输出……

帮个忙看看问题出在哪里

@atjl 代码没有任何问题。我的手机运行没有出错,除了按 选项键,主页键,返回键的坐标会超出获取屏幕的分辨率,其他的点击屏幕内返回的坐标没有问题!

你这个是什么原因超出那么多不太清楚。
你是获取的都是超出坐标那么多吗?

那么就是程序对于机型的支持问题了,手机设置里的开发者选项里显示手机坐标,这个都是正常的,感谢回复

@1912380084
利用控件的id提取text的值:
var a=id("控件ID"). findOne().id()
toast(a)
输出一大串的内容,怎么提取txet的内容,用var a=str.split(":");分割提取出现错误,求方法!

@ldk132

var a=id("控件ID"). findOne()
toast(a)//输出控件的数据总合集
toast(a.text());//输出控件文本内容
获取的控件对象后,填写相应的类名返回相应的数据。

请问两只手机,两个脚本之间如何进行数据传递?

@winniezc
两个手机之间,目前我能想到的只有两种,利用ftp文件上传下载两个手机能交互。或者手机1在类似qq空间日志填写数据等等,另外手机2获取日志内容得到需要的数据,想要实时的两个手机中的脚本交互数据,很麻烦。目前我还没有达到那种地步。

请问我在auto.js里面运行没问题(含图片的),但是打包应用就有问题了,我是用的相对路径以及文件夹打包但是还是打包之后安装运行apk不能用了,不知道为什么图片加载不了了。很多操作也不能用了

@wsqwskwsy
如何把图片和脚本一起打包,或者打包多个脚本#
如果除了单脚本以外还有其他脚本、图片、音乐等资源一起打包,则需要使用项目打包功能。

新建一个文件夹,命名为项目名称。
在该文件夹下新建脚本,或者移动脚本到该文件夹,命名为main.js,表示主脚本。脚本打包后将会从该脚本开始运行。
把其他资源或脚本放在该文件夹,并通过相对路径引用。
通过文件夹菜单的"打包"功能来打包该项目
例如,主脚本要读取同一文件夹下的图片1.png,再执行找图,则可以通过images.read("./1.png")来读取,其中"./1.png"表示同一目录1.png图片;ui中的图片控件要引用同一文件夹的2.png图片则为<img src="file://2.png"/>。Auto.js内置的函数和模块都支持相对路径,但是,其他情况则需要使用files.path()函数来把相对路径转换为绝对路径。

这上面是介绍仔细排查查找问题:
1,是不是因为有些情况需要将相对路径转换成绝对路径例如你使用找图命令图片因为路径问题导致失败,就会导致接下来的命令也随之失效。
利用控制台console.show();+log()查看打包后的app每一个步骤,找出问题。
因为不知道你的源码没法指出要害所以利用这种土且最有效的办法。

@1912380084 两个手机交换数据,有个办法,就是通过社交软件,传递数据的手机调用社交APP,发送带特定字符的数据,接收数据的手机监听消息通知,识别特定字符后,提取传送的数据

@1912380084
auto();
sleep(20*1000);
var p=device.isScreenOn();
toast(p);
if(p=false){
device.wakeUp();
sleep(2000);
toast(唤醒屏幕);
}
我先等20秒待手机锁屏,var p=device.isScreenOn();这一行代码没有运行,理由是等我手动解除锁屏之后,就提示返加值ture。对js电源管理不设限制,权限管理全部敞开。教程中也没提示对安卓的版本有要求!不知道问题在哪?

@atjl
对啊,我没想到可以通过聊天工具,监听通知栏进行交互数据。可以!想法很棒。

@ldk132
给你发个例子请仔细观察自己的错误出现在哪,问题在哪,下次仔细点。命令是死的格式注意注意在注意!
auto();
alert("请点确认后,马上关闭屏幕,5秒后自动激活屏幕")
sleep(5*1000);
var p=device.isScreenOn();
log("当前屏幕状态为=" + p);
if(p==false){
device.wakeUp();
sleep(2000);
toastLog("已唤醒屏幕");
}

下面给你介绍if的运用新同学注意学了啊!:

//如果等于 ==
if(1==1){toastLog("正确")};
//如果 不等于 !=
if(1 != 2){toastLog("正确")};
//如果 大于小于 > < 不举例子

var a=true;b=false;
//如果真判断简写 正常写 if(a == true){ }
if(a){toastLog("a=真")}
//如果假判断简写 正常写 if(b == false){ }
if(!b){toastLog("b=假")}

// && = 并且
if( a==true && b==false ){
toastLog("a为真-b为假")
}
// || = 或者
if( a==false || b==false ){
toastLog("a或者b其中为假")
}

最后由 1912380084 编辑

@1912380084 谢谢普及,按键精灵用习惯了,呵呵!如果按你示例的代码,在五秒钟内是唤醒屏幕,但如果时间改成9秒或9秒之后都不起作用了。

@ldk132 @1912380084 锁屏后的计时不准是通病

请问手机的底部的home键是怎么按的呢

@w115045484 参考教程里 按键模拟章节

  • 55
    帖子
  • 1181
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待