最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【未解决】给安卓手机小米9中欢乐大作战的游戏实现自动挂机

安卓 crifan 1329浏览 0评论
最近偶尔玩玩自己安卓手机小米9中的游戏:
欢乐大作战
欢乐大作战 – 搜索结果 – 哔哩哔哩弹幕视频网 – ( ゜- ゜)つロ 乾杯~ – bilibili
https://search.bilibili.com/all?keyword=欢乐大作战
平台:Android
游戏简介:一款好玩刺激的策略卡牌类游戏
发现其中一些页面,是比较无聊的,只是单纯多次点击即可的
比如:
主线关卡中的每次单次过关的挑战:
试炼的升级:
后续操作,和上面的战斗 类似的。
而最近接触到uiautomator2可以实现安卓的自动化点击操作
所以想着,去试试,自己写脚本,实现自动挂机功能,至少实现主线关卡和试炼能够自动化操作。
省去每次自己浪费时间点击即可。
主线或试炼的战斗,结果大都是胜利,偶尔,或者说直到失败,即可。
此处小米9,之前被另外项目调试过,所以安装了ATX或uiautomator2相关的东西。
此处尽量去删除掉,完整的重新搭建一遍调试环境。
先去卸载之前安装的ATX。
重新搭建整个开发环境,包括Mac中VSCode调试环境和小米9的环境。
uiautomator2 mac
【Mac安装,ATX基于uiautomator2】之安装步骤 – Owen_ET – 博客园
安装并使用Python-uiautomator2 – plychoz的博客 – CSDN博客
UIAutomator2 (Android) – Appium
appium-uiautomator2-driver – npm
Uiautomator2使用Python测试Android应用 – 51Testing软件测试网
UIAutomator2的使用 | Vicの博客
https://vic.kim/2019/05/20/UIAutomator2的使用/
UI Automator  |  Android Developers
UI Automator is a UI testing framework suitable for cross-app functional UI testing across system and installed apps.
还是看官网吧
openatx/uiautomator2: Android Uiautomator2 Python Wrapper
此处mac中之前有pipenv,所以尽量用虚拟环境去安装python环境
➜  autoTestAndroidGameHappyBigBattle pipenv shell
Creating a virtualenv for this project…
Pipfile: /Users/crifan/dev/dev_root/python/autoTestAndroid/autoTestAndroidGameHappyBigBattle/Pipfile
Using /usr/local/opt/python/bin/python3.7 (3.7.3) to create virtualenv…
⠦ Creating virtual environment...Already using interpreter /usr/local/opt/python/bin/python3.7
Using base prefix '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/bin/python3.7
Also creating executable in /Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/bin/python
Installing setuptools, pip, wheel...
done.


✔ Successfully created virtual environment! 
Virtualenv location: /Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z
Creating a Pipfile for this project…
Launching subshell in virtual environment…
 . /Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/bin/activate
➜  autoTestAndroidGameHappyBigBattle  . /Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/bin/activate
➜  autoTestAndroidGameHappyBigBattle which python
/Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/bin/python
➜  autoTestAndroidGameHappyBigBattle python --version
Python 3.7.3
然后去安装uiautomator2:
【记录】mac中用pipenv安装uiautomator2
另外去看看mac上的adb:
➜  ~ which adb
/Users/crifan/dev/dev_tool/android/AndroidSDK/platform-tools/adb
➜  ~ adb --version
Android Debug Bridge version 1.0.41
Version 29.0.1-5644136
Installed as /Users/crifan/dev/dev_tool/android/AndroidSDK/platform-tools/adb
➜  ~ adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
把小米9手机连接到Mac后
首次连接,提示,勾选信任:
能否找到:
➜  ~ adb devices
List of devices attached
8c8a4d4d    device
是可以找到的。
浅谈自动化测试工具 python-uiautomator2 · TesterHome
再去pipenv中安装其他库:
python -m uiautomator2 init
此处安卓小米9中需要点击 继续安装:
  • ATX
  • com.github.uiautomator.test
但是过了会,报错了:
【基本解决】uiautomator2初始化到安卓手机小米9中报错:http.client.RemoteDisconnected Remote end closed connection without response
之后,就可以正常连接了:
➜  autoTestAndroidGameHappyBigBattle python
Python 3.7.3 (default, May 22 2019, 10:55:14) 
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import uiautomator2 as u2
>>> d = u2.connect('8c8a4d4d')
>>> print(d.info)
/Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/lib/python3.7/site-packages/uiautomator2/__init__.py:462: RuntimeWarning: uiautomator2 is not reponding, restart uiautomator2 automatically
  stacklevel=1)
[D 191120 21:35:39 __init__:639] force reset uiautomator
[D 191120 21:35:39 __init__:655] uiautomator(1.0) is starting ...
[D 191120 21:35:40 __init__:655] uiautomator(1.0) is starting ...
[I 191120 21:35:40 __init__:643] uiautomator back to normal
{'currentPackageName': 'com.miui.home', 'displayHeight': 2135, 'displayRotation': 0, 'displaySizeDpX': 393, 'displaySizeDpY': 851, 'displayWidth': 1080, 'productName': 'cepheus', 'sdkInt': 29, 'naturalOrientation': True}
>>> 
然后:
【未解决】Mac中安装uiautomator2的UI界面工具:weditor
然后想办法去获取界面中的元素:
【未解决】uiautomator2中如何获取到欢乐大作战游戏界面中的元素
后来为了调试方便,试试WiFi的IP
去连接看看
192.168.31.17
AndroidDeviceWifiIP_Xiaomi9 = "192.168.31.17"
结果:
➜  autoTestAndroidGameHappyBigBattle /Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/bin/python /Users/crifan/.vscode/extensions/ms-python.python-2019.10.44104/pythonFiles/ptvsd_launcher.py --default --client --host localhost --port 64779 /Users/crifan/dev/dev_root/python/autoTestAndroid/autoTestAndroidGameHappyBigBattle/autoTestAndroidGame.py 
Traceback (most recent call last):
  File "/Users/crifan/.vscode/extensions/ms-python.python-2019.10.44104/pythonFiles/ptvsd_launcher.py", line 43, in <module>
    main(ptvsdArgs)
  File "/Users/crifan/.vscode/extensions/ms-python.python-2019.10.44104/pythonFiles/lib/python/old_ptvsd/ptvsd/__main__.py", line 432, in main
    run()
  File "/Users/crifan/.vscode/extensions/ms-python.python-2019.10.44104/pythonFiles/lib/python/old_ptvsd/ptvsd/__main__.py", line 316, in run_file
    runpy.run_path(target, run_name='__main__')
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 263, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/Users/crifan/dev/dev_root/python/autoTestAndroid/autoTestAndroidGameHappyBigBattle/autoTestAndroidGame.py", line 67, in <module>
    autoTestAndroidGame()
  File "/Users/crifan/dev/dev_root/python/autoTestAndroid/autoTestAndroidGameHappyBigBattle/autoTestAndroidGame.py", line 37, in autoTestAndroidGame
    d = u2.connect(AndroidDeviceWifiIP_Xiaomi9)
  File "/Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/lib/python3.7/site-packages/uiautomator2/__init__.py", line 122, in connect
    return connect_usb(addr)
  File "/Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/lib/python3.7/site-packages/uiautomator2/__init__.py", line 164, in connect_usb
    lport = device.forward_port(7912)
  File "/Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/lib/python3.7/site-packages/adbutils/__init__.py", line 388, in forward_port
    self._client.forward(self._serial, "tcp:" + str(local_port), remote)
  File "/Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/lib/python3.7/site-packages/adbutils/__init__.py", line 250, in forward
    c.check_okay()
  File "/Users/crifan/.local/share/virtualenvs/autoTestAndroidGameHappyBigBattle-F2NzwZ7Z/lib/python3.7/site-packages/adbutils/__init__.py", line 137, in check_okay
    raise AdbError(self.read_string())
adbutils.errors.AdbError: device '192.168.31.17' not found
mac中:
➜  ~ adb devices
List of devices attached
无线连接是找不到设备的。

转载请注明:在路上 » 【未解决】给安卓手机小米9中欢乐大作战的游戏实现自动挂机

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
80 queries in 0.195 seconds, using 22.11MB memory