赞
踩
1、安装ADB
地址:SDK 平台工具版本说明 | Android 开发者 | Android Developers
下载对应环境的工具 解压
之后设置环境变量
右键我的电脑->属性 然后按下图顺序 最后添加platform-tools的路径保存即可
设置好后cmd打开命令行
输入adb version
可以查看adb版本信息 ok~
python =3.7
2、安装uiautomator2
python下载uiautomator2包
pip install --pre uiautomator2
使用数据线将手机与电脑相连 使用开发者模式
在电脑命令行输入
python -m uiautomator2 init
进行初始化
注意看提示
如果需要wifi连接 adb需要tcpip连接模式
4.调用adb,连接设备(不必做)
将手机通过USB数据线连接至电脑,打开开发者模式,并开启USB调试(不同手机不同操作,需要自己研究下)
通过 adb devices 命令查看当前手机的连接情
所以在数据线连接时我们需要设定端口(修改端口 默认5555)
adb tcpip 5566adb connect 192.168.1.2:5566
打开ATX 查看IP
5、元素定位@
pip install weditor==0.6.4
pip install -i https://pypi.douban.com/simple weditor
启动 weditor
6、简单举例
import uiautomator2 as ui d = ui.connect("127.0.0.1:11509") # 打开 d(text="移动管理平台").click()
自动安装 两个软件 atx 和com.github.uiautomator.test
7、应用
- import json
- import uiautomator2 as u2
- import time
- import pandas as pd
-
-
- # nova4
- # d = u2.connect("JPF4C19321023776")
- # reno 9
- # d = u2.connect("7L55SOHQ4HKVIJ95")
- def login(d):
- # d = u2.connect_adb_wifi("192.168.3.223:5555")
-
- d.press("home")
- time.sleep(0.5)
- d.press("home")
- time.sleep(0.5)
- d(text="风电移动管理平台").click()
- d(resourceId="com.baidu.myapplication:id/btn_login").click()
- time.sleep(1)
- return d
-
-
- def opencheck(d):
- d.swipe(540, 1068, 540, 302, 0.2)
- # 点击巡检
- d.xpath('//*[@text="巡检"]').click()
- time.sleep(0.5)
- # 点击右侧三道杠
- d(resourceId="com.baidu.myapplication:id/btn_right").click()
- time.sleep(1)
- # 点击升压站
- if d(text="升压站", instance=1).exists:
- d(text="升压站", instance=1).click()
- else:
- d(text="升压站", instance=0).click()
- time.sleep(0.5)
-
- # 点击日期
- d(resourceId="com.baidu.myapplication:id/editText4").click()
- time.sleep(0.5)
- # 确定
- d(resourceId="com.baidu.myapplication:id/tv_sure").click()
- time.sleep(0.5)
- # 再次确定
- d(text="确定").click()
- time.sleep(0.5)
- # 告警确定
- d(text="确定").click()
- time.sleep(1)
-
-
-
- def writedata(d):
- # 展开巡检单
- d.xpath(
- '//*[@resource-id="com.baidu.myapplication:id/layout_root"]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]').click()
- time.sleep(0.5)
- # 日常巡检
- wklist = [
- ['//*[@text="一、220kVGIS"]', 25],
- ['//*[@text="二、220kV主变"]', 20],
- ['//*[@text="三、35kV设备"]', 53],
- ['//*[@text="四、继电保护舱"]', 77],
- ['//*[@text="五、10kV农网"]', 4],
- ['//*[@text="六、生活、消防及公用设施"]', 5],
- ['//*[@text="七、400V低压配电舱"]', 6]
- ]
- data = pd.read_csv("data.csv")
- n = 1
- for m in range(len(wklist)):
- d.xpath(wklist[m][0]).click()
- time.sleep(1)
- i = 1
- while i <= wklist[m][1]:
-
- # 分为两类 是否测量值
- print('当前行号', n)
- print(data.values[n - 1])
- d(resourceId="com.baidu.myapplication:id/tv_sort", text=str(n)).click()
-
- if data.values[n - 1][2] == '测量值':
- d(text="合格").click()
- # time.sleep(0.2)
- print(n, '填入', data.values[n - 1][3])
- d(resourceId="com.baidu.myapplication:id/tv_data").send_keys(data.values[n - 1][3])
- else:
- d(text="合格").click()
- # time.sleep(0.2)
- d(resourceId="com.baidu.myapplication:id/btn_right").click()
- time.sleep(0.2)
- ## 区域结束+1
- print('wklist', wklist[m][1], n, wklist[m][1] == n, m,i)
- if i == wklist[m][1]:
- n = n + 1
- n = n + 1
- i = i + 1
- d(resourceId="com.baidu.myapplication:id/btn_left").click()
- time.sleep(0.2)
-
-
- # 两项细则巡检
-
- if __name__ == "__main__":
- # d = u2.connect("7XM7F6EUPJSOJNXG")
- d = u2.connect_adb_wifi("192.168.3.156:42251")
- login(d)
- opencheck(d)
- writedata(d)
1、Uiautomator not starting
先试用adb devices查询到设备
再使用命令python -m uiautomator2 init在模拟器上安装ATX
打开ATX,启动UIautomator,提示Uiautomator not starting,
解决办法:
adb shell chmod 755 /data/local/tmp/atx-agent data/local/tmp/atx-agent version # 查看版本 /data/local/tmp/atx-agent server -d # 启动atx-agent并切换到后台运行
adb 重启
adb kill-server
adb start-server
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。