当前位置: 首页 > news >正文

基于 python + WebDriverAgent 的“跳一跳”小程序高分教程

2017年12月28日,微信放出了 6.6.1 版本,在微信首页二楼(下拉出现)位置重磅推出了“跳一跳”小程序,瞬间刷爆朋友圈。

在大家忙于游戏的时候,有人独辟蹊径基于 python + WebDriverAgent 实现了通过 PC 远程操控手机“跳一跳”小程序小人自动跳动,将分数刷到了令人发指的地步,悄悄占领朋友圈第一。

目前已经有比较火的几篇文章详细讲如何实现上述操作,但是或多或少存在描述不够详细、参数设置只在某些机型上表现较好的问题。这也造成我在根据这些教程实现过程中踩了几个小坑。本文基于 Macbook + iphone 6s plus 来讲一下如何实现上述过程,也将踩过的坑记录下。

环境准备

安装 python3

下载并点击安装。下载地址:www.python.org/downloads/m… 在终端 terminal 中输入如下命令,查看是否安装 python3 成功。

~ python3 -V
Python 3.6.4 
复制代码

创建 python3 虚拟环境

文档地址:docs.python.org/3/tutorial/… 方法如下:

~ python3 -m venv tutorial-env
~ source tutorial-env/bin/activate
(tutorial-env) ➜  ~
复制代码

安装 pip

安装 python 包管理工具 pip。 文档地址:pip.pypa.io/en/latest/i… 方法如下:

(tutorial-env) ➜  ~ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
(tutorial-env) ➜  ~ python get-pip.py
复制代码

安装 xcode

通过 appstore 安装

安装 WebDriverAgent

xcode,尽量新版。尽量升级Xcode到最新版,保持iPhone的版本大于9.3。

从github上下载代码

git clone https://github.com/facebook/WebDriverAgent
复制代码

安装 carthage

brew install carthage
复制代码

运行初始化脚本

./Scripts/bootstrap.sh
复制代码

该脚本会使用Carthage下载所有的依赖,使用npm打包响应的js文件

执行完成后,直接双击打开WebDriverAgent.xcodeproj这个文件。

设置证书

设置证书签名,Team 一栏勾选个人账号即可。

接着在TARGETS里面选中WebDriverAgentRunner,用同样的方法设置好证书
重命名WebDriverAgent的BundleID,避免重名。
接着在TARGETS里面选中WebDriverAgentRunner,用同样的方法重命名。

运行和测试

Xcode - Product - Scheme 中选择 WebDriverAgentRunner。

将 iphone 通过数据线连接到 macbook 上。 在 Xcode - Product - Destination 中选择数据线连接的 iphone 。

运行 Xcode - Product - Test

端口转发

~ brew install libimobiledevice
~ iproxy 8100 8100
复制代码

使用iproxy --help 可以查到更具体的用法。 这时通过访问http://localhost:8100/status确认WDA是否运行成功。

而inspector的地址是http://localhost:8100/inspector, inspector是用来查看UI的图层,方便写测试脚本用的

使用 python 控制 iphone 自动跳一跳

获取 python 跳一跳代码

仓库地址:github.com/korbinzhao/…

git clone git@github.com:korbinzhao/wechat_jump_game.git
复制代码

安装 facebook-wda

(tutorial-env) ➜ ~ pip3 install --pre facebook-wda
复制代码

安装项目依赖

 (tutorial-env) ➜  wechat_jump_game git:(master) ✗ pip3 install -r requirements.txt
复制代码

拷贝 ./config/iPhone 目录下对应的设备配置文件,重命名并替换到 ./config.json

在手机中打开小程序界面,运行 python 脚本

(tutorial-env) ➜  wechat_jump_game git:(master) ✗ python3 wechat_jump_auto_iOS.py
复制代码

最终效果

参考资料

  1. 教你用 Python 来玩微信跳一跳
  2. 微信跳一跳 mac + iphone 图文教程
  3. ATX 文档 - iOS 真机如何安装 WebDriverAgent

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • json logstash 解析失败 ctrl-code 1
  • 5-2 equal getClass or instanceOf
  • linux kernel编译配置相关
  • 不要在构造函数中抛出异常
  • 老男孩教育教您批量建立nagios配置文件的方法
  • 使用jQuery获取session中存储的list集合
  • 如何理解接口-Java系列
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • Linux下的文件I/O编程
  • 作为完美主义者(强迫症)如何将linux的eth1网卡修改为eth0网卡
  • WEB服务FTP概述
  • scrapy学习之路4(itemloder的使用)
  • 基于 Docker for MAC 的 Kubernetes 本地环境搭建与应用部署
  • MQL:5分钟双均线EA
  • 我的PMP备考之路
  • 【附node操作实例】redis简明入门系列—字符串类型
  • ComponentOne 2017 V2版本正式发布
  • cookie和session
  • EOS是什么
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Java,console输出实时的转向GUI textbox
  • JS学习笔记——闭包
  • laravel5.5 视图共享数据
  • Meteor的表单提交:Form
  • React Transition Group -- Transition 组件
  • spark本地环境的搭建到运行第一个spark程序
  • vuex 学习笔记 01
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 对超线程几个不同角度的解释
  • 后端_MYSQL
  • 算法-插入排序
  • 提醒我喝水chrome插件开发指南
  • 微信小程序:实现悬浮返回和分享按钮
  • ‌移动管家手机智能控制汽车系统
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (pycharm)安装python库函数Matplotlib步骤
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (五)activiti-modeler 编辑器初步优化
  • (转)LINQ之路
  • (转)母版页和相对路径
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .form文件_SSM框架文件上传篇
  • .md即markdown文件的基本常用编写语法
  • .NET CLR Hosting 简介
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .vimrc 配置项
  • @AliasFor注解
  • @Async 异步注解使用