技术标签: Web 深山磨柴斧 autojs Android脚本 Android
本文基于读者熟悉或了解JavaScript
函数 | 功能 |
---|---|
click(x,y) | click(500,500) 点击屏幕x=500px,y=500px的点 |
press(x,y,mills) | press(200,200,1000) 按住(200,200)1秒钟 |
sleep(mills) | sleep(1000) 程序暂停1秒 |
press(x,y,1); sleep(50); press(x,y,1) |
双击 |
swipe(x1,x2,y1,y2,t) | swipe(100,300,600,900,1000); 从A点(100,300)滑动到B点(600,900)耗时设置1秒 |
auto.waitFor() | 等待申请无障碍权限,一般用于脚本开头 |
Tap(x,y) | 与click(x,y)一样,Android7.0以下使用,且需要root |
Swipe(x1,x2,y1,y2,t) | 与swipe(x1,y1,x2,y2,t)一样,Android7.0以下使用,且需要root |
console.verbose | 灰色日志 |
console.info | 绿色日志 |
console.warn | 蓝色日志 |
console.error | 红色日志 |
toast(str) | 气泡提示 ,str为内容 |
serScreenMetrics(width,height) | 设置脚本运行屏幕的宽高 宽不一致,会自动缩放运行的坐标值 |
var w = device.height | 获取屏幕高度px |
var w = device.width | 获取屏幕宽度px |
console.show(); | 显示控制台 |
console.hide(); | 隐藏控制台 |
console.rawInput(); | 等待控制台输入内容、并等待点击确定 |
dialog.confirm(title ,content) | 弹出确认框,点击确定返回true,点击取消返回false |
engines.execScriptFile(path) | 启动path对应的脚本 可用相对路径:./xx.js同目录的脚本 |
engines.stopAll() | 停止所有脚本,包括自身 |
exit() | 停止当前脚本 |
app.launchApp(appName) | 通过APP名启动app |
app.launchApp(pkgName) | 通过包名启动app |
app.uninstall(pkgName) | 通过包名卸载app |
app.openUrl(url) | 打开浏览器,并打开指定url |
back() | 返回键功能 |
home() | home键功能 |
random(min ,max) | 返回随机数[min ,max] |
toastLog(message) | toast(str)和log(str)的合并 |
device.vibrate(mills) | device.vibrate(1000)手机震动1秒 |
device.keepScreenOn(mill) | 让手机保持常亮,不设置时间则为常亮,设置时间,即为指定常亮时间 |
setClip(text) | 设置剪贴板内容 |
getClip() | 获取粘贴板的内容 |
setInterval(function(){} , mills) | 设置指定间隔时间,的循环体 |
在auto.js软件中有直接获取到控件信息的功能,在auto.js软件主页面,点击右上角,打开侧拉菜单,大致中间位置的悬浮窗打开。这个auto.js的悬浮窗就含有获取控件信息的功能。点击悬浮窗我们可以看到有5个功能,中间蓝色的就是用于查看控件信息的功能,点击之后,会让你选择用布局范围分析和布局层次分析
比较主要的控件信息有id即控件的id属性,text控件的文本属性,bounds控件的边框位置,desc控件的desc值,有些控件会把text控件放空,并把上面的文本写入desc值。clickable/longClickable控件是否可以点击/长按,如果控件的clickable为false那么点击也没用。checked控件是否选中,depth在第几层次,indexInParent在父控件中是第几个.
api | 功能 |
---|---|
id(“a”).text(“abc”).findOne().click(); | 选择id属性为a的,text属性为abc的控件,直到找到一个符合以上条件的控件,对其点击。 |
desc() | 匹配desc值为传参的控件 |
descContains(“cd”) | |
descStartsWith() | |
descEndsWith() | |
descMatches() | 用于传入正则表达式 匹配查找对应的控件 |
text() | |
textContains() | |
textStartsWith() | |
textEndsWith() | |
textMatches() | |
id() | |
idContains() | |
idStartsWith() | |
idEndsWith() | |
idMatches() | |
className | |
package | |
clickable(true) | 可点击选择器 |
checkable() | 是否可勾选 |
selected() | 是否已选中 |
longClickable() | 是否可长按 |
enabled() | 控件是否已启用 - 选择器 |
scrollable() | 选择器:控件是否可滑动 |
editable() | 选择器:控件是否可编辑 |
- | - |
bounds(x1,y1,x2,y2) | 控件位置范围 ,四个整数值组成前两个值为控件长方形左上角的坐标,后两个值是控件右下角点的坐标 |
boundsInside(x1,y1,x2,y2) | boundsInside(233,233,666,666) |
filter(function(w){return w.text().length==10}) | 过滤出text属性有10个字符的控件 |
findOne() | 寻找屏幕上符合前面控件选择器的函数,直到出现,并返回第一个出现的控件,另外他还可以传入一个参数—最大查找时间,即位,如果到了时间还没有找到的话,直接返回undifined,以继续脚本 |
findOnce() | 函数只会寻找一次,如果当前屏幕上没有,则直接返回null,他也可以传入一个参数,用于写,需要获取当前屏幕上第几个符合条件的内容,如果当前屏幕上的个数,不够获取的个数,则返回null |
untilFind() | 他会循环寻找,至少要找到一个才会返回合集 |
find() | 选择器转换成合集 |
api | 功能 |
---|---|
setText() | 输入框内内容:id(“edit”).findOne().setText(“123456”); |
控件.parent() | 获得到这个函数的父控件函数 |
child(第几个) | 获取到他的第几个子控件,注意序号从零开 |
children() | 用于返回这个控件的所有子控件 |
findByText(str) | 需要传入一段文<字符串>,这个函数返回他所有子控件或者孙控件中text或者desc属性中包含这段文字的所有控件 |
import java.awt.image.BufferedImage;import java.io.FileOutputStream;import java.io.OutputStream;import java.util.HashMap;import java.util.Map;import org.icepdf.core.pobjects.Document;i..._r代码 pdf 转tif
工作中要获取页面滚动高度,用的document.documentElement.scrollTop,但是一直为0,查阅资料后发现let top = document.documentElement.scrollTop || document.body.scrollTop;..._bx-viewport 滚动height变0
承接微信小程序开发,网页开发,微信 13977284413实现方案:登录你的微信公众号,在首页右键- 查看网页源代码找到类似代码:(纯数字处是你微信号唯一id) window.wx.uin = "2394001060" || "0";其中这个纯数字:2394001060, 应该就是你的唯一标识ID。代码可能会有所更新,但是类似叫uin 的且纯数字的差不多就..._点击关注我们公众号
jetson AGX Xavieranaconda环境pycharm使用python虚拟环境的管理1.archicondaARM架构只能用archiconda,安装请参考:Xavier安装Archiconda2.python虚拟环境管理1)archiconda2)python环境管理参考:附加:系统软件源头## website to referhttps://www.cnblogs.com/yongy1030/p/10315569.html##中科大源deb ht._jetson agx xavier 安装python 3.10
文章目录1. 视图概念2. 视图的作用1. 提高重用性2. 便于数据库重构3. 提高安全性4.数据更清晰1. 视图概念在MYSQL中,视图是一个命名的虚表,它由一个SQL查询来定义,可以当做表使用。与持久表不同的是,视图中的数据没有实际的物理存储但是在MYSQL中,用户可以对某些视图进行更新操作,就是可以通过视图的定义来更新基本表,但是这种可以进行更新操作的视图被称为可更新视图(updatable view)。 这种视图是在定义的时候需要添加 WITH CHECK OPTION总的来说,可以看
Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍。第一种情况:若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。不过要注意环境变量%ORACLE_HOME%/network/admin/是否设置。第二种情况:本机未安装oracle服务器,也未安装orac_连接oracle数据库的方式
设置布局管理器方法,实现RecylerView布局里面的内容显示方式;recyclerView.setLayoutManager(LayoutManager layoutManager)使用三个类LinearLayoutManager:线性布局管理器 StaggeredGridLayoutManager: 错列网格布局管理器 GridLayoutManager:网格布局管理器一、LayoutMananger子类LinearLayoutManager一般使用LinearLayou_recyclerview.setlayoutmanager
pyenv:管理 Python 本身的多个版本;pyenv-virtualenv:管理不同版本 Python 的虚拟环境;linux安装1. 首先安装所需依赖,在Ubuntu/Debian/Mint(Debian系)上:sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \libbz2-dev libreadline-dev libsqlite3-dev wget cu.
广告点击率预测项目,目的是通过广告和用户信息预测一个广告是否被点击。数据来自Kaggle竞赛(https://www.kaggle.com/c/avazu-ctr-prediction),源数据比较大,选取前40000条。1. 数据读取和分析import numpy as npimport pandas as pdimport matplotlib.pyplot as plt#数据读取data_df = pd.read_csv('train_subset.csv')#展示头部数据,分_python kaggle预测点击率
WhaleCTF 隐写之彩虹的声音下载的文件打开发现是音频文件,问了大佬音频文件处理的方法。直接用audacity打开看频谱图,这题就是这样没了。。。。音频文件还有思路这边我还看到一篇文章:https://www.sqlsec.com/2018/01/ctfwav.html...
流行病模型(SIR Model)by : ZhuoFei, Zhou首先定义一个函数bernoulli(p)#以概率p判断是否会被感染或恢复function bernoulli(p::Number) if rand(1)[1] < p return true else return false endendbernoulli (generic function with 1 method)恢复所需的时间函数recovery_time(p)function recove_sir model
C++的局部对象的概念:作用域在局部范围内(例如函数)的对象。这样的对象可以把对象的引用或者指针存在栈中,随着函数的结束而销毁,而把创建的对象内容存在堆中。如果需要在堆上创建对象,要么使用new运算符,要么使用malloc系列函数。而关键是理解好“自动存储”的概念[1]:Object obj;此时,obj是在栈上分配的吗?要回答这个问题,我们首先要理解这个语_c++函数返回局部对象