uiautomator2一篇就够

自动化只是让你关注更应该关注的 不是偷懒

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值