shell蚂蚁森林_和“蚂蚁森林”的融合
1、思路
根据appium连接安卓真机进行一系列操作
2、代码
# -*- coding: UTF-8 -*-
# v0.1-20201125
from appium import webdriver
import time
appdata = {
'noReset': True,
'platformVersion': '10',# (Android)系统版本号
'appPackage': 'com.eg.android.AlipayGphone',# APP包名
'appActivity': 'com.eg.android.AlipayGphone.AlipayLogin',# APP包启动路径
'platforVersion': '4.4.2',
'uuid': '',
'deviceName': 'test_phone',# 别名
'platformName': 'Android'# 设备型号
}
shenlindata = {
'entrance_identification': '蚂蚁森林',# 首页的‘蚂蚁森林’文字标识
'energy_map_id': 'J_tree_dialog_wrap',# ‘找能量’ID
'energy_map_coords': [(971,1558)],#[(540,612),(1080,1623)],# ‘找能量’坐标
'energy_pay_text': '我的大树养成记录',# ‘找能量’后页面的标识
'steal_coords': [[(216,750)],[(298,701)],[(381,653)],[(463,605)],[(546,605)],[(628,653)],[(711,701)],[(793,750)]] # “偷”能量的点击坐标列表值(有待于优化)
}
timesleepdata = {
'app_start': 0 # APP启动后等待时间
}
appiumurl = 'http://127.0.0.1:4723/wd/hub'
# 点击'id'
def click_id( driver, id ):
try:
driver.find_element_by_id(id).click()
return True
except Exception as args:
print(args)
# 点击'accessibility id'
def click_accessibility_id( driver, mId ):
try:
#click_linkmanMsgidCoords(driver, mId)
driver.find_element_by_accessibility_id(mId).click()
return True
except Exception as args:
print(args)
# 点击某个‘mId’元素第一次出现是的坐标
def click_linkmanMsgidCoords( driver , mId):
try:
pageStr = driver.page_source
for line in pageStr.splitlines():
if mId in line:
line_subStr = line.split()
#print(line_subStr)
for s in line_subStr:
if 'bounds=' in s:
s2 = s.replace('bounds=','|').replace('"','').replace('[','|').replace(']','|').replace(',','|')
s3 = s2.split('|')
for ss3 in s3:
if '' is ss3:
s3.remove(ss3)
c1 = (int(s3[0]),int(s3[1]))
c2 = (int(s3[2]),int(s3[3]))
coords = [c1,c2]
return click_tap(driver, coords)
except Exception as args:
print(args)
# 点击'坐标点'
def click_tap( driver, coords ):
try:
driver.tap(coords)
return True
except Exception as args:
print(args)
# 判断’page‘中是否存在'sub_str'
def judge_driver_element( sub_str, str ):
try:
if str is None:
return False
if sub_str in str:
return True
except Exception as args:
print(args)
# 日志输出至文件
def log( logstr ):
f = open('log.txt', 'w')
print(logstr.encode('utf-8'), file = f)
f.close()
# 执行‘死循环’的【偷】当前页面
def steal_run_while( driver ):
for steal_c in shenlindata['steal_coords']:
try:
click_tap(driver, steal_c)
time.sleep(1)
except Exception as args:
print(args)
# 已经进入蚂蚁森林中,准备‘死循环’的【偷】所有可‘偷’的人
def sl_run( driver ):
while True:
try:
flag = judge_driver_element(shenlindata['energy_map_id'], driver.page_source)
if(flag):
flag = click_id(driver, shenlindata['energy_map_id'])
time.sleep(1)
print('---1')
print(flag)
if(flag):
steal_run_while(driver)
else:
flag = click_tap(driver, shenlindata['energy_map_coords'])
time.sleep(1)
print('----2')
print(flag)
if(flag):
steal_run_while(driver)
else:
flag = click_tap(driver, shenlindata['energy_map_coords'])
time.sleep(1)
print('---3')
print(flag)
if(flag):
steal_run_while(driver)
except Exception as args:
print(args)
break
def run_phone( appiumurl, appdata):
driver = None
try:
driver = webdriver.Remote(appiumurl, appdata)# 打开手机APP
timesleep = timesleepdata['app_start']
if timesleep > 0:
time.sleep(timesleep)# 等待'APP'启动
if driver is None:
print('APP启动失败')
else:
flag = judge_driver_element(shenlindata['entrance_identification'], driver.page_source)
if(flag):
flag = click_linkmanMsgidCoords(driver, shenlindata['entrance_identification'])
print(flag)
sl_run(driver)
except Exception as args:
print(args)
def main():
print('APP启动')
while True:
try:
run_phone(appiumurl, appdata)
except Exception as args:
print(args)
print('运行结束')
if __name__ == '__main__':
main()
3、需要修改和优化地方
appdata.uuid:根据自己使用安卓真机填写(一般可使用“adb devices”获取)
appdata.platformVersion:(Android)系统版本号根据安卓真机填写(不用填写系统小版本号,只要大版本号,例如:10、9、8、7...)
shenlindata.steal_coords:“偷”能量的点击坐标列表值,一个弧形的路线(一般会跟手机默认的分辨率有关,也跟“树”的装扮有关)
shenlindata.energy_map_coords:‘找能量’坐标位置,一般会跟手机默认的分辨率有关(使用AppiumUI/代码断点调试自行获取即可)
4、附言
本代码将持续更新,
同时也欢迎各路大神指导;
如有新的思路等办法,
也欢迎指导、讨论...
shell蚂蚁森林_和“蚂蚁森林”的融合相关推荐
- sklearn 随机森林_初识随机森林及sklearn实现
1.随机森林简介 (1)相关概念介绍:集成学习(Ensemble).自助法(bootstrap).自助抽样集成(bagging) 集成学习:组合多个弱监督模型得到一个更全全面的强监督模型,增强整体的泛 ...
- 用mysql搭建蚂蚁笔记_搭建蚂蚁笔记(服务器)
为了能将笔记保存在自己的服务器上,可以使用蚂蚁笔记这款软件 一.环境配置 使用的Linux版本为CentOS7,搭载在腾讯云中 二.安装MongoDB 具体内容可以查看:https://www.cnb ...
- 机器学习中决策树的随机森林_决策树和随机森林在机器学习中的使用
机器学习中决策树的随机森林 机器学习 (Machine Learning) Machine learning is an application of artificial intelligence ...
- 怎么关闭蚂蚁庄园_蚂蚁庄园账户如何注销
怎么关闭蚂蚁庄园_蚂蚁庄园账户如何注销 蚂蚁庄园的小鸡不喂它经常会收到提醒,非常烦人.那么,怎么关闭蚂蚁庄园_蚂蚁庄园账户如何注销呢?下面让我来给大家介绍下吧,希望对大家有所帮助. 工具/原料 蚂蚁庄 ...
- r与python做随机森林_随机森林算法入门(python)
昨天收到yhat推送了一篇介绍随机森林算法的邮件,感觉作为介绍和入门不错,就顺手把它翻译一下. 目录 1 什么是随机森林 1.1 集成学习 1.2 随机决策树 1.3 随机森林 1.4 投票 2 为什 ...
- 随机森林原始论文_初识随机森林
在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定. 发展出推论出随机森林的算法. 而 "Random Forests" 是他们的 ...
- 在envi做随机森林_随机森林原理
随机森林由Leo Breiman(2001)提出的一种分类算法,它通过自助法(bootstrap)重采样技术,从原始训练样本集N中有放回地重复随机抽取n个样本生成新的训练样本集合训练决策树,然后按以上 ...
- cross_val_score 如何对孤立森林_泸县九中开展 “森林草原防灭火”主题班会活动...
泸县九中开展 "森林草原防灭火"主题班会活动为加强学生防护森林火灾的安全意识,9月6日,泸县九中开展 "森林草原防灭火"主题班会活动,学校各班参与.班会课上,班 ...
- python随机森林筛选变量_用随机森林分类器和GBDT进行特征筛选
一.决策树(类型.节点特征选择的算法原理.优缺点.随机森林算法产生的背景) 1.分类树和回归树 由目标变量是离散的还是连续的来决定的:目标变量是离散的,选择分类树:反之(目标变量是连续的,但自变量可以 ...
- java 森林_森林 - Minecraft Wiki,最详细的官方我的世界百科
本文章介绍的是常规森林.关于其他森林生物群系,请见" 森林(Forest)群系是一种常见的茂密生物群系.它一共有3种变种. 森林群系的一大特点是在其绵延的地形中有大量的橡树与白桦树.在森 ...
最新文章
- Question: Short And Long Read Sequencing
- escape sequence
- LTE voice centric和data centric
- (转)当别人努力的时候,你在做什么?
- import lombok 报错_Android上使用Lombok和set、get方法告别
- 前端学习(1713):前端系列javascript之运行
- 计算机可以按用户观点分吗,2016-2017杭州师范大学操作系统期末考试选择题
- ef 执行mysql语句_在EF中执行SQL语句
- Eclipse集成Git插件及使用
- Cookie的格式及组成
- Laya中使用tiledMap瓦片地图以及遇到的坑
- 计算机二级题库access选择题_计算机二级access选择题题库
- c语言写的电脑开关机代码,只需要几行代码制作电脑开关机控制软件
- c语言个人所得税,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
- max导出fbx动画模型导入unity后播放会出现局部模型扭曲解决办法总结
- 谷哥闹别扭,谷姐来上场
- 笔记本固态硬盘温度测试软件,固态硬盘散热测试
- 易语云模块-易语言邮件发送模块下载(含命令详解)
- 网络安全职业_我如何开始网络安全职业
- 使用灰度图作为数据集训练CNN
热门文章
- 我国计算机发展的四个阶段,计算机发展历程.ppt
- 2020.1.8学习
- 新买的笔记本计算机内存不足,笔记本内存不够怎么办_笔记本内存不足如何解决...
- 云队友丨华为选拔人才,最看重这5个素质,已经用了15年
- 杭州电子科技大学计算机专业考研分数线,2019杭州电子科技大学研究生分数线汇总(含2016-2019历年复试)...
- 学校计算机室如何连接热点,电脑连热点怎么操作
- 【华为机试真题 Python实现】平安果
- IP协议的详细知识总结
- 小球斜抛公式用C语言怎么写,利用C4droid绘制小球斜抛运动轨迹(考虑空气阻力)...
- php学籍信息管理系统心得_php学籍管理系统,源码免费分享