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


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

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

环境准备

安装 python3

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

~ python3 -V
Python 3.6.4 

创建 python3 虚拟环境

文档地址:https://docs.python.org/3/tut...
方法如下:

~ python3 -m venv tutorial-env
~ source tutorial-env/bin/activate
(tutorial-env) ➜  ~

安装 pip

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

(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 跳一跳代码

仓库地址:https://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

基于 python + WebDriverAgent 的“跳一跳”小程序高分教程 1相关推荐

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

    当初微信放出了 6.6.1 版本,在微信首页二楼(下拉出现)位置重磅推出了"跳一跳"小程序,瞬间刷爆朋友圈. 在大家忙于游戏的时候,有人独辟蹊径基于 python + WebDri ...

  2. python开发微信小游戏大全_【python】用python玩微信跳一跳小游戏

    Python微信跳一跳实验报告 Step 1 准备工具:一台安卓手机,Windows10,python3,adb驱动,依赖的各种python库 Step 2 PiP安装:下面列出需要安装的库: bac ...

  3. python小程序代码50 到100行-Python代码不到四十行简单暴力,微信跳一跳小程序轻松过万...

    群内不定时分享干货,包括最新的python企业案例学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴入群学习交流 最近微信有个小程序,并不知道大家有没有被这个游戏给刷屏,这个游戏就是跳一跳 今天就用P ...

  4. Python游戏开发,pygame模块,Python实现恐龙跳一跳小游戏

    前言: 本期我们将仿制一个Chrome浏览器里隐藏多年的彩蛋小游戏,即"恐龙跳一跳"(当然一般都叫它T-Rex Rush). 让我们愉快地开始吧~ 效果图 在Chrome浏览器地址 ...

  5. 计算机实战项目 含文档+PPT+源码等]精品基于Python实现的鲜花销售小程序

    django鲜花销售微信小程序>该项目采用技术Python的django框架.mysql数据库 ,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教程.核心代码介绍视频等 软件开 ...

  6. 微信跳一跳高分系列三:用 adb 破解微信跳一跳小程序

    写在前面:网上关于微信跳一跳的文章已有很多,写这篇的目的是对 adb 工具的一个熟悉过程,也是对未入门的新朋友的一个引导 步骤: 1.保存当前跳一跳页的截图到手机 adb shell screenca ...

  7. 基于python tkinter的课堂点名小程序

    import datetime import json import os import random import tkinter as tk import openpyxl# 花名册文件名 很多人 ...

  8. python语音播报库-基于python GUI开发的点名小程序(语音播报)

    #实现名单轮播.点名.语音播报功能 # -*- coding:utf8 -*- # # -------------------------------------------------------- ...

  9. python读音播报-基于python GUI开发的点名小程序(语音播报)

    #实现名单轮播.点名.语音播报功能 # -*- coding:utf8 -*- # # -------------------------------------------------------- ...

  10. python 语音播报库_基于python GUI开发的点名小程序(语音播报)

    #实现名单轮播.点名.语音播报功能 #优化版本1 # -*- coding:utf8 -*- # # ------------------------------------------------- ...

最新文章

  1. JAVA实现顺时针打印矩阵问题(《剑指offer》)
  2. 在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以
  3. 安装sql server 2008 报错
  4. 有趣的网页注释代码,保护我方源码
  5. vue项目如何放到服务器上,Vue项目怎么上传到云服务器
  6. utf8编码转换脚本
  7. Anaconda下安装OpenCV和Tensorflow(最简洁高效的方法)
  8. JS静态变量和静态函数
  9. 【热修复】Andfix源码分析
  10. datefromstring 转换不准确_免费的在线OCR工具,将图片内容转换为文本内容
  11. bzoj 1006: [HNOI2008]神奇的国度
  12. 1002.ubuntu系统级BUG-/dev/ttyUSB0
  13. python封装sql脚本_flask-sqlalchemy如何使用原生的sql语句然后封装?
  14. C#带参数线程的操作
  15. uniapp路由守卫
  16. 美团html页面代码,html+css+js制作美团官网
  17. 大数据新算法在个人信用风险评估模型中使用效果的评估
  18. 浅谈Thread.setDaemon
  19. FLEX 4.6 Spark DataGrid 一些的用法
  20. 忘了BIOS密码不用慌 多种方法可解决

热门文章

  1. bzoj2190: [SDOI2008]仪仗队(欧拉)
  2. Linux篇---Grep和正则匹配
  3. SQL2043N 与 linux的randomize_va_space特性
  4. iOS设置圆角的四种方法
  5. ios开发网络学习AFN框架的使用一:get和post请求
  6. 【如何提取软件图片素材资源】
  7. BZOJ4025 : 二分图
  8. 手写Spring+demo+思路
  9. spring异常+自定义以及使用
  10. ajax(form)图片上传(spring)