"auto";
device.keepScreenOn();//保持屏幕常亮
text_click("发现",1,0);
text_click("搜一搜",1,0);
while(true){
var 找到的参数 = undefined;
var pword = "";
var 是否成功到达搜索页面 = false;
while(true){
var desc1 = classNameContains("android.view.View").descContains("搜索");
if(desc1.exists()){
找到的参数 = desc1.findOne(1000);
break;
}
}
if(找到的参数 != "" && 找到的参数 != null && 找到的参数 != undefined && 找到的参数 != "undeflned"){
sleep(1000);
for(var i45 = 0; i45 < 200; i45++){
找到的参数.click();
pword = 显示屏幕内容();
if(寻找文本(pword,"朋友圈_-_音乐_-_文章_-_微信指数",0) != -1){//存在
是否成功到达搜索页面 = true;
break;
}
if(i45>20){
console.log("连续"+ i45 +"次没有找到搜索页面:",pword);//当**次都没有找到,就打印
}
sleep(200);
}
}
if(是否成功到达搜索页面 == false){
console.log("没有到达搜索页面:",找到的参数,pword);
}else{
console.log("成功到达搜索页面");
sleep(1000);
while(true){
if(className("EditText").exists()){
break;
}
}
var edit = className("EditText").find();
for(var i23 = 0; i23 < edit.length; i23++){
if(edit[i23] != "" && edit[i23] != null && edit[i23] != undefined && edit[i23] != "undeflned"){
edit[i23].setText("测试".trim());//向全部搜索框输入文本
console.log("输入内容:","测试".trim());
}
}
while(true){
sleep(1000);
var ss = text("搜索").find();
for(var i = 0; i < ss.length; i++){
if(ss[i] != "" && ss[i] != null && ss[i] != undefined && ss[i] != "undeflned"){
ss[i].click();
console.log("点击了搜索按钮");
}
}
sleep(3000);
var dao = 获取导航栏控件("小程序");
if(dao != undefined){
console.log("已进入搜索列表页面");
break;
}
}
while(true){//点导航栏:小程序
sleep(3000);
var dao = 获取导航栏控件("小程序,按钮");
if(dao != undefined){
sleep(1000);
dao.click();
console.log("点击了导航栏【小程序】");
sleep(500);
var dao_ok = 获取导航栏控件("已选定,小程序");
if(dao_ok != undefined){
console.log("已进入搜索小程序页面");
break;
}
}
}
//划动到控件出现在可视区域并单击("考试宝","上海巨闲网络科技");
var 是否返回成功 = false;
while(true){
sleep(1000);
var ss = text("取消").find();
for(var i = 0; i < ss.length; i++){
if(ss[i] != "" && ss[i] != null && ss[i] != undefined && ss[i] != "undeflned"){
ss[i].click();
console.log("点击了取消按钮");
}
}
sleep(3000);
while(true){
var desc1 = classNameContains("android.view.View").descContains("搜索");
if(desc1.exists()){
是否返回成功 = true;
break;
}
}
if(是否返回成功 == true){
console.log("已返回成功");
break;
}
}
}
}
//下面都是方法,没啥用,忽略
function 划动到控件出现在可视区域并单击(小程序名,公司名){
var 是否出现在肉眼可视区域 = false;
var a = 366;//这是一组起始范围
var a1 = 600;//这是一组起始范围
var b = 1950;//这是一组结束范围
var b1 = 2222;//这是一组结束范围
while(true){
var fsfan = className("Button").find();
for(i = 0; i < fsfan.length; i++){
var ftxt = fsfan[i].text();
if(ftxt != ""){
var axy = fsfan[i].bounds();
if (axy.top >= a && axy.bottom >= a1) {
if (axy.top <= b && axy.bottom <= b1) {//已滑动到,屏幕肉眼可见的范围
if(寻找文本(fsfan[i].text(),小程序名,0) != -1){//小程序名 用于判断点击
if(寻找文本(fsfan[i].text(),公司名,0) != -1){//公司名 用于确定产品
console.log("已进入,选项肉眼可视区域");
是否出现在肉眼可视区域 = true;
}
}
}
}
}
}
if(是否出现在肉眼可视区域 == false){
下滑一切控件("");
}else{
break;
}
}
while(true){
var lbx = className("Button").find();
for(i = 0; i < lbx.length; i++){
var ftxt = lbx[i].text();
if(ftxt != ""){
if(寻找文本(ftxt,小程序名,0) != -1){
if(寻找文本(ftxt,公司名,0) != -1){
lbx[i].click();
}
}
}
}
var edit = className("EditText").textContains("测试".trim()).find();
if(edit.length ==0){
console.log("已进入,指定小程序");
break;
}
}
}
function 获取导航栏控件(word){
var fan = undefined;
if(className("android.view.View").exists()){
var dhs = className("android.view.View").find();
for(var i457 = 0; i457 < dhs.length; i457++){
if(dhs[i457] != "" && dhs[i457] != null && dhs[i457] != undefined && dhs[i457] != "undeflned"){
var dhl = dhs[i457];
if(寻找文本(dhl.text(),word,0) != -1){//存在
fan = dhl;
}
}
}
}
return fan;
}
function 下滑一切控件(view) {
if(view == ""){
view = className("android.widget.FrameLayout").findOne();
}
if (view){
if(view.scrollable() == true){
view.scrollForward();//找到页面所有可以滑动的,并滑动
sleep(1000);
}
if (view.childCount() > 0) {// 如果控件是容器类型,则继续遍历其子控件
for (var i = 0; i < view.childCount(); i++) {
var childView = view.child(i);
下滑一切控件(childView);
}
}
}
}
function 显示屏幕内容(){
var ftxt = "";
var fas = "";
var fsfan = className("TextView").find();
for(var i = 0; i < fsfan.length; i++){
ftxt = fsfan[i].text();
if(ftxt != ""){
if(fas == ""){
fas = ftxt;
}else{
fas = fas +"_-_"+ ftxt;
}
}
}
fsfan = className("TextView").find();
for(var i = 0; i < fsfan.length; i++){
ftxt = fsfan[i].desc();
if(ftxt != ""){
if(fas == ""){
fas = ftxt;
}else{
fas = fas +"_-_"+ ftxt;
}
}
}
fsfan = className("Button").find();
for(i = 0; i < fsfan.length; i++){
ftxt = fsfan[i].text();
if(ftxt != ""){
if(fas == ""){
fas = ftxt;
}else{
fas = fas +"_-_"+ ftxt;
}
}
}
fsfan = className("Button").find();
for(i = 0; i < fsfan.length; i++){
ftxt = fsfan[i].desc();
if(ftxt != ""){
if(fas == ""){
fas = ftxt;
}else{
fas = fas +"_-_"+ ftxt;
}
}
}
fsfan = className("android.view.View").find();
for(i = 0; i < fsfan.length; i++){
ftxt = fsfan[i].text();
if(ftxt != ""){
if(fas == ""){
fas = ftxt;
}else{
fas = fas +"_-_"+ ftxt;
}
}
}
fsfan = className("android.view.View").find();
for(i = 0; i < fsfan.length; i++){
ftxt = fsfan[i].desc();
if(ftxt != ""){
if(fas == ""){
fas = ftxt;
}else{
fas = fas +"_-_"+ ftxt;
}
}
}
return fas;
}
function 寻找文本(被搜寻的文本,欲寻找的文本,起始位置){
if((起始位置 < 0) || (起始位置 > 被搜寻的文本.length) || ("".equals(被搜寻的文本)) || ("".equals(欲寻找的文本))){
return -1;
}
return 被搜寻的文本.indexOf(欲寻找的文本, 起始位置);
}
function 子文本替换(待操作文本,欲被替换的子文本,用作替换的子文本){
return 待操作文本.replace(欲被替换的子文本, 用作替换的子文本);
}
function 取群名文本(待取文本,左边文本,右边文本){
var wba = 待取文本.indexOf(左边文本);
var wbb = 待取文本.indexOf(右边文本);
return 待取文本.substring(wba + 1,wbb);
}
function 取转义文本(待取文本,左边文本,右边文本){
return 待取文本.substring(待取文本.indexOf(左边文本)+4, 待取文本.lastIndexOf(右边文本));
}
function 取指定文本(待取文本,左边文本,右边文本){
var pattern = new RegExp(左边文本 + "(.*?)" + 右边文本,"g");
var result = new Array(0);
while (pattern.exec(待取文本) != null){
result.push(RegExp.$1);
}
return result;
}
function 引用文件(){
var tanc = '"ui";\n替换引用替换();\nfunction okokok(){\n let builder = new android.app.AlertDialog.Builder(activity);\n builder.setTitle("替换标题替换");\n builder.setMessage("替换内容替换");\n builder.setCancelable(false);\n builder.setPositiveButton("替换确实替换", {\n onClick: function (builder) {\n \n }\n }).show();\n}\n\nfunction okno(){\n let builder = new android.app.AlertDialog.Builder(activity);\n let field = null;\n builder.setTitle("替换ok标题no替换");\n builder.setMessage("替换ok内容no替换");\n builder.setCancelable(false);\n builder.setPositiveButton("替换ok确实no替换", {\n onClick: function (builder) {\n \n }\n }).setNegativeButton("替换ok取消no替换", {\n onClick: function (builder) {\n \n }\n }).show();\n}';
tanc = tanc.replace("替换引用替换","okokok");
tanc = tanc.replace("替换标题替换","提示");
tanc = tanc.replace("替换内容替换","当前 微信版本 不是:7.0.16");
tanc = tanc.replace("替换确实替换","好的");
files.write("/sdcard/qxcode/tan_code.js",tanc);//写入文件
engines.execScriptFile("/sdcard/qxcode/tan_code.js");
}
function getPackageVersion(packageName) {
importPackage(android.content);
var pckMan = context.getPackageManager();
var packageInfo = pckMan.getPackageInfo(packageName, 0);
return packageInfo.versionName;
}
function 取指定文本2(待取文本,左边文本,右边文本){
var pattern = new RegExp(左边文本 + "(.*?)" + 右边文本,"g");
var result = new Array(0);
while (pattern.exec(待取文本) != null){
result.push(RegExp.$1);
}
return result[0];
}
function 连续弹窗(txtt){
for(var y=10;y>=0;y--){
toastLog(txtt);
sleep(1988);//1000=1秒
}
}
function 获取时间(){
var today=new Date();
return today.getHours();
}
/**
url123 = 网址
lgg = 1 则打印网址日志
mods
0=返回源码
1=返回json
2=返回字节
3=返回body
**/
function fa_get(url123,lgg,mods){
if(lgg == 1){
console.log("[fa_get]",url123);
}
var fan = undefined;
var codeee = undefined;
try{
codeee = http.get(url123);
}catch(e){
codeee = undefined;
console.log("[fa_get]","get异常1:"+e);
}
if(codeee == undefined){
try{
codeee = http.get(url123);
}catch(e){
codeee = undefined;
console.log("[fa_get]","get异常2:"+e);
}
if(codeee == undefined){
try{
sleep(5000);
codeee = http.get(url123);
}catch(e){
codeee = undefined;
console.log("[fa_get]","get异常3:"+e);
}
}
}
if(codeee != undefined && codeee.statusCode == 200){
if(mods == 0){
try{
fan = codeee.body.string();
}catch(e){
fan = undefined;
console.log("[fa_get]","codeee.body.string():"+e)
}
}else if(mods == 1){
try{
fan = codeee.body.json();
}catch(e){
fan = undefined;
console.log("[fa_get]","codeee.body.json():"+e)
}
}else if(mods == 2){
try{
fan = codeee.body.bytes();
}catch(e){
fan = undefined;
console.log("[fa_get]","codeee.body.bytes():"+e)
}
}else if(mods == 3){
try{
fan = codeee.body;
}catch(e){
fan = undefined;
console.log("[fa_get]","codeee.body:"+e)
}
}
}
return fan;
}
/**
ttext = 文本
kong
0 = 点击文本 (举例:需要点击的内容为“123”,,若出现“1234,123” 则点击123)
1 = 点击包括文本 (举例:需要点击的内容为“123”,,若出现“1234,123” 则点击1234)
2 = 点击出现的最后一个文本 的控件 (举例:需要点击的内容为“123”,,若出现“123,123,123” 则点击第三个123)
3 = 点击按钮控件文本 (举例:一般用于点击:按钮,弹窗按钮,授权提示按钮,等....)
clickmod
0 = 控件或位置 (举例:控件点击不了 则点位置)
1 = 位置 (举例:点文本,控件)
2 = 控件 (举例:点文本,位置)
**/
function text_click(ttext,kong,clickmod){//文本,,
var texi = null;
var 是否可点 = false;
var 是否找到 = true;
var texi = 控件判断(ttext,kong,"TextView");
if(texi == null && texi == undefined){
是否找到 = false;
texi = 控件判断(ttext,kong,"Button");
if(texi != null && texi != undefined){
texi = 控件是否可点(texi);
if(texi != false){
点击位置或控件(texi,ttext,clickmod);
}else{
点击位置(texi,ttext);
}
}
}
if(是否找到 == true){//是否找到
texi = 控件是否可点(texi);
if(texi != false){
点击位置或控件(texi,ttext,clickmod);
}else{
点击位置(texi,ttext);
}
}
}
function 控件判断(ttext,kong,clas){
var texi = null;
var 是否可点 = false;
var 是否找到 = false;
if(kong == 0){
texi = className(clas).text(ttext).findOne(1000);
if(texi)是否找到 = true;
if(是否找到 == false){
texi = className(clas).textContains(ttext).findOne(1000);
}
}else if(kong == 1){
texi = className(clas).textContains(ttext).findOne(1000);
}else if(kong == 2){
var fsfan = className(clas).textContains(ttext).find();
var lengt = fsfan.length-1;
texi = fsfan[lengt];
}else if(kong == 3){
texi = className("Button").textContains(ttext).findOne(1000);
}
if(是否找到 == false){
if(texi){
是否找到 = true;
}
}
return texi;
}
function 点击位置(texi,ttext){
var aws = texi.bounds();
var 是否成功 = click(aws.centerX(),aws.centerY());
}
function 点击位置或控件(texi,ttext,clickmod){
var clickcode = false;
if(clickmod == 0){
clickcode = texi.click();
if(clickcode == false){
点击位置(texi,ttext);
}
}else if(clickmod == 1){
点击位置(texi,ttext);
}else if(clickmod == 2){
clickcode = texi.click();
}
}
function 控件是否可点(texi){
var czz = "";
var 是否找到 = false;
for(var i=0;i<=10;i++){
sleep(122);
if(texi != null && texi != undefined){
if(texi.clickable() == true){
sleep(166);
是否找到 = texi;
break;
}else{
texi = texi.parent();
}
}
}
return 是否找到;
}
function bytesToBase64(imgBytes) {//解码二进制数据
let code = android.util.Base64.encodeToString(imgBytes, 2);
code = $base64.decode(code);
code = encodeURIComponent(code);
return code;
}
function shell_copy(name){
//将手机系统文件,复制到储存卡
var a ="cp /data/data/com.twitter.android/databases/"+name+" /sdcard/";
var result = shell(a, true);
log(result);
}
autojs通用方法模型
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1、通过学习你如何认识通用胜任力,它对你的工作和生活会有什么帮助? 在工作和生活中建立起一种对事情处理的系统性思维...
- 【今日小作业】主题格式:Day6_lynn【心态管理—通用胜任力模型】 1、通过学习你如何认识通用胜任力,它对你的...
- 【胜任力概念】 “胜任力”这个概念最早由哈佛大学教授戴维·麦克利兰(David·McClelland)于1973年...
- 1、做事当责: 在对待一件事的态度上不仅是简单的完成:而应该是以提升、超越目前处境,而应是当仁不让、责无旁贷...