手把手教你使用AutoJS自动领京豆



AutoJS

一个支持无障碍服务的Android平台上的JavaScript IDE。Autojs主要是基于安卓系统的无障碍服务,实现自动化操控和监控手机信息处理。python

特性:

  1. 由无障碍服务实现的简单易用的自动操做函数git

  2. 悬浮窗录制和运行github

  3. 更专业&强大的选择器API,提供对屏幕上的控件的寻找、遍历、获取信息、操做等。相似于Google的UI测试框架UiAutomator,您也能够把他当作移动版UI测试框架使用shell

  4. 采用JavaScript为脚本语言,并支持代码补全、变量重命名、代码格式化、查找替换等功能,能够做为一个JavaScript IDE使用微信

  5. 支持使用e4x编写界面,并能够将JavaScript打包为apk文件,您能够用它来开发小工具应用app

  6. 支持使用Root权限以提供更强大的屏幕点击、滑动、录制功能和运行shell命令。录制录制可产生js文件或二进制文件,录制动做的回放比较流畅python爬虫

  7. 提供截取屏幕、保存截图、图片找色、找图等函数框架

  8. 可做为Tasker插件使用,结合Tasker可胜任平常工做流编辑器

  9. 带有界面分析工具,相似Android Studio的LayoutInspector,能够分析界面层次和范围、获取界面上的控件信息函数

项目介绍:

  • 项目地址:https://github.com/hyb1996/Auto.js

  • 官方论坛:https://www.autojs.org/

  • 在线文档:https://hyb1996.github.io/AutoJs-Docs/#/

  • 专业版地址:https://pro.autojs.org/

安装

免费版在网上搜索autojs.apk,下载后便可安装,免费版已更新至4.1.1Beta而且再也不更新。最新版已经开始收费,下载地址:https://pro.autojs.org/

  • 开启手机无障碍服务

  • 某些版本上打开音量上键中止全部脚本,防止死循环脚本(我所使用的版本上默认开启)

  • 打开悬浮窗进行布局分析

悬浮窗功能

编辑环境配置

autojs软件提供了很是好的手机端编写支持,拥有强大的提示功能,基本上咱们在手机端进行编写也是很是温馨的。同时有VS Code 插件可提供基础的在桌面开发的功能。免费版咱们下载:Auto.js-VSCodeExt

根据咱们安装的版本进行选择
插件命令:

Ctrl+Shift+P或点击“查看”->“命令面板”可调出命令面板,输入Auto.js能够看到如下命令:

  • Start Server: 启动插件服务。以后在确保手机和电脑在同一区域网的状况下,在Auto.js的侧拉菜单中使用链接电脑功能链接。

  • Stop Server: 中止插件服务。

  • Run: 运行当前编辑器的脚本。若是有多个设备链接,则在全部设备运行。

  • Rerun: 中止当前文件对应的脚本并从新运行。若是有多个设备链接,则在全部设备从新运行。

  • Stop: 中止当前文件对应的脚本。若是有多个设备链接,则在全部设备中止。

  • StopAll: 中止全部正在运行的脚本。若是有多个设备链接,则在全部设备运行全部脚本。

  • Save: 保存当前文件到手机的脚本默认目录(文件名会加上前缀remote)。若是有多个设备链接,则在全部设备保存。

  • RunOnDevice: 弹出设备菜单并在指定设备运行脚本。

  • SaveToDevice: 弹出设备菜单并在指定设备保存脚本。

  • New Project(新建项目):选择一个空文件夹(或者在文件管理器中新建一个空文件夹),将会自动建立一个项目

  • Run Project(运行项目):运行一个项目,须要Auto.js 4.0.4Alpha5以上支持

  • Save Project(保存项目):保存一个项目,须要Auto.js 4.0.4Alpha5以上支持

使用vscode进行开发
  • 在命令面板选择Start Server启动服务,右下角会显示Auto.js server running

  • 将手机与电脑链接到同一个WiFi,查看电脑的IP地址。在手机端AutoJS侧边菜单中选择远程调试,并输入电脑IP,vscode中会显示链接成功

    AutoJS侧边栏设置
vscode右下角
  • vscode中建立JS文件,按F5或者选择Run命令,便可在手机端进行运行

  • 在vscode命令面板中选择Save,将自动发送并保存到手机上

经常使用命令及函数

auto.waitFor()

检查无障碍服务是否已经启用,若是没有启用则跳转到无障碍服务启用界面,并等待无障碍服务启动;当无障碍服务启动后脚本会继续运行。

app.launchApp(appName)
  • appName {string} 应用名称

经过应用名称启动应用。若是该名称对应的应用不存在,则返回false; 不然返回true。若是该名称对应多个应用,则只启动其中某一个。

UiSelector.text(str)
  • str {string} 控件文本

  • 返回 {UiSelector} 返回选择器自身以便链式调用

为当前选择器附加控件"text等于字符串str"的筛选条件。

控件的text(文本)属性是文本控件上的显示的文字,例如微信左上角的"微信"文本。

UiSelector.textContains(str)
  • str {string} 要包含的字符串

为当前选择器附加控件"text须要包含字符串str"的筛选条件。

这是一个比较有用的条件,例如QQ动态页和微博发现页上方的"你们都在搜…."的控件能够用textContains("你们都在搜").findOne()来获取。

bounds()
  • 返回 Rect

返回控件在屏幕上的范围,其值是一个Rect对象

findOne(selector)
  • selector UiSelector

  • 返回 UiOobject

根据选择器selector在该控件的子控件、孙控件…中搜索符合该选择器条件的控件,并返回找到的第一个控件;若是没有找到符合条件的控件则返回null

其余API请看官方文档。要注意控件的click函数不必定会生效,所以推荐使用全局点击click函数。

京东签到领京豆

  • 开启AutoJS的悬浮窗

  • 打开京东商城APP

  • 选择AutoJS悬浮窗的布局分析

  1. 选择布局分析

  2. 布局范围分析

  3. 点击领京豆

  4. 生成代码

  • 查看text、id、desc,也能够选择生成代码
    上面咱们看到生成代码失败了,那么就要查看控件信息,发现底下text属性为“领京豆”

而后咱们就能够在代码中使用text('领京豆'),来获取这个控件了。

目前最新版的AutoJS Pro已是付费制了,37元永久免费,也但愿你们能支持做者,可是免费版的在网上依然能搜到,能够下载比较新的版本使用,基本上也能知足咱们不少需求。另外论坛已经中止更新了,可是咱们依然能够在上面搜索到一些脚本。固然直接在GitHub上就能够搜索到更多的脚本。

签到领京豆脚本已经上传到GitHub,请关注公众号,并回复:领京豆,获取源代码。


本文分享自微信公众号 - python爬虫实战之路(small_bud1989)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索