# coding:utf-8
from com.android.monkeyrunner
import MonkeyRunner
as mr
from com.android.monkeyrunner
import MonkeyDevice
as md
from com.android.monkeyrunner
import MonkeyImage
as mi
from com.android.monkeyrunner.easy
import EasyMonkeyDevice
as emd
from com.android.monkeyrunner.easy
import By
import os
# 首先我要连接一台手机
device = mr.waitForConnection()
# ************************************************************************
# 判断手机 是否打开viewserver 如果打开 可以使用EasyMonkeyDevice
def
viewServer():
viewServer=os.system(
"adb shell service call window 3")
# print(viewServer)
if viewServer==
0:
# print("开启ViewServer")
ovs=os.system(
"adb shell service call window 1 i32 4939")
if ovs==
0:
# print("你的手机无法打开viewserver 无法使用EasyMonkeyDevice")
return
False
else:
# print("你的手机已经打开viewServer")
return
True
else:
# print("你的手机已经打开viewServer")
return
True
# ************************************************************************
# easy_device=emd(device)
# mr.alert("success")
def
installApp():
# 安装jkt
device.installPackage(
"D:
\\
JKT
\\
apks
\\
JKT_V1.2.24-release.apk")
print(
"安装jkt--ok")
# 安装weike2.1.16
device.installPackage(
"D:
\\
JKT
\\
apks
\\
Weike_V2.1.16-release.apk")
print(
"安装weike--ok")
# 安装test
device.installPackage(
"D:
\\
JKT
\\
apks
\\
Weike_V2.1.10-debug-androidTest.apk")
print(
"安装test--ok")
# 安装wechat6.6.5
device.installPackage(
"D:
\\
JKT
\\
apks
\\
Wechat_V6.6.5.apk")
print(
"wechat--ok")
def
setUpSetting():
print(
"***********************Setting begining**************************")
# 打开setting
device.startActivity(
component=
"com.android.settings/com.android.settings.Settings")
print(
"不锁屏设置")
# 点击显示
device.touch(
500,
1150,
"DOWN_AND_UP")
mr.sleep(
1)
# 点击休眠
# 下滑点击从不
device.touch(
500,
950,
"DOWN_AND_UP")
mr.sleep(
1)
device.drag((
500,
1000),(
500,
700),
1,
10)
mr.sleep(
1)
device.touch(
350,
1150,
"DOWN_AND_UP")
mr.sleep(
1)
device.takeSnapshot().writeToFile(
"D:
\\
PythonProject
\\
MonkeyRunner
\\
a3s
\\
standard_images
\\
setting_1.png")
#截图并保存
# 返回
device.press(
'KEYCODE_BACK',
"DOWN_AND_UP")
# 应用权限管理
for i
in
range(
1,
5):
device.drag((
500,
1000),(
500,
500),
2,
10)
mr.sleep(
1)
device.touch(
350,
1150,
"DOWN_AND_UP")
def
setUpSperSU():
print(
"***********************supersu begining**************************")
device.startActivity(
component=
"eu.chainfire.supersu/eu.chainfire.supersu.MainActivity-Material")
mr.sleep(
1)
# 点击设置
device.touch(
600,
210,
"DOWN_AND_UP")
mr.sleep(
1)
# 点击重新验证
device.touch(
500,
900,
"DOWN_AND_UP")
mr.sleep(
1)
# 点击默认操作
device.touch(
200,
1100,
"DOWN_AND_UP")
mr.sleep(
1)
# 点击默认操作--授权
device.touch(
200,
650,
"DOWN_AND_UP")
# 截图并与标准图进行比较
# standardImage=mr.loadImageFromFile("D:\\PythonProject\\MonkeyRunner\\a3s\\standard_images\\supersu_1.png") #标准图
mr.sleep(
2)
# image=mi.getSubImage(0,0,720,1080) #指定矩形截图
device.takeSnapshot().writeToFile(
"D:
\\
PythonProject
\\
MonkeyRunner
\\
a3s
\\
standard_images
\\
supersu_1.png")
#截图并保存
# image=mr.loadImageFromFile("D:\\PythonProject\\MonkeyRunner\\a3s\\standard_images\\supersu_1_1.png")#比较
# 实际操作中,因为截图中的时间不一致 会一直报错
# if mi.sameAs(standardImage,image):
# print("all right!")
# else:
# mr.alert("something wrong!!")
# 下滑
device.drag((
500,
1000),(
500,
400),
2,
10)
mr.sleep(
0.1)
device.drag((
500,
1000),(
500,
400),
2,
10)
mr.sleep(
0.1)
device.drag((
500,
1000),(
500,
400),
2,
10)
mr.sleep(
0.1)
# 点击开机允许所有授权申请
device.touch(
500,
900,
"DOWN_AND_UP")
mr.sleep(
1)
device.takeSnapshot().writeToFile(
"D:
\\
PythonProject
\\
MonkeyRunner
\\
a3s
\\
standard_images
\\
supersu_2.png")
#截图并保存
#下滑
device.drag((
500,
1000),(
500,
400),
2,
10)
mr.sleep(
0.1)
device.drag((
500,
1000),(
500,
400),
2,
10)
mr.sleep(
0.1)
device.drag((
500,
1000),(
500,
400),
2,
10)
mr.sleep(
0.1)
# 点击开机允许所有授权申请
device.touch(
500,
600,
"DOWN_AND_UP")
mr.sleep(
1)
device.takeSnapshot().writeToFile(
"D:
\\
PythonProject
\\
MonkeyRunner
\\
a3s
\\
standard_images
\\
supersu_3.png")
#截图并保存
print(
"***********************supersu 设置完成**************************")
def
setUpXposed():
device.startActivity(
component=
"de.robv.android.xposed.installer/de.robv.android.xposed.installer.WelcomeActivity")
mr.sleep(
1)
print(
"ok")
# def setUpJkt():
# device.startActivity(component="")
def
main():
if viewServer():
print(
"可以使用emd,调用新的方法。。。。")
else:
# installApp()
setUpSetting()
# setUpSperSU()
if
__name__ ==
'__main__':
main()