当前位置:   article > 正文

uiautomator2一篇就够_uiautomator not starting

uiautomator not starting

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

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、应用

  1. import json
  2. import uiautomator2 as u2
  3. import time
  4. import pandas as pd
  5. # nova4
  6. # d = u2.connect("JPF4C19321023776")
  7. # reno 9
  8. # d = u2.connect("7L55SOHQ4HKVIJ95")
  9. def login(d):
  10. # d = u2.connect_adb_wifi("192.168.3.223:5555")
  11. d.press("home")
  12. time.sleep(0.5)
  13. d.press("home")
  14. time.sleep(0.5)
  15. d(text="风电移动管理平台").click()
  16. d(resourceId="com.baidu.myapplication:id/btn_login").click()
  17. time.sleep(1)
  18. return d
  19. def opencheck(d):
  20. d.swipe(540, 1068, 540, 302, 0.2)
  21. # 点击巡检
  22. d.xpath('//*[@text="巡检"]').click()
  23. time.sleep(0.5)
  24. # 点击右侧三道杠
  25. d(resourceId="com.baidu.myapplication:id/btn_right").click()
  26. time.sleep(1)
  27. # 点击升压站
  28. if d(text="升压站", instance=1).exists:
  29. d(text="升压站", instance=1).click()
  30. else:
  31. d(text="升压站", instance=0).click()
  32. time.sleep(0.5)
  33. # 点击日期
  34. d(resourceId="com.baidu.myapplication:id/editText4").click()
  35. time.sleep(0.5)
  36. # 确定
  37. d(resourceId="com.baidu.myapplication:id/tv_sure").click()
  38. time.sleep(0.5)
  39. # 再次确定
  40. d(text="确定").click()
  41. time.sleep(0.5)
  42. # 告警确定
  43. d(text="确定").click()
  44. time.sleep(1)
  45. def writedata(d):
  46. # 展开巡检单
  47. d.xpath(
  48. '//*[@resource-id="com.baidu.myapplication:id/layout_root"]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]').click()
  49. time.sleep(0.5)
  50. # 日常巡检
  51. wklist = [
  52. ['//*[@text="一、220kVGIS"]', 25],
  53. ['//*[@text="二、220kV主变"]', 20],
  54. ['//*[@text="三、35kV设备"]', 53],
  55. ['//*[@text="四、继电保护舱"]', 77],
  56. ['//*[@text="五、10kV农网"]', 4],
  57. ['//*[@text="六、生活、消防及公用设施"]', 5],
  58. ['//*[@text="七、400V低压配电舱"]', 6]
  59. ]
  60. data = pd.read_csv("data.csv")
  61. n = 1
  62. for m in range(len(wklist)):
  63. d.xpath(wklist[m][0]).click()
  64. time.sleep(1)
  65. i = 1
  66. while i <= wklist[m][1]:
  67. # 分为两类 是否测量值
  68. print('当前行号', n)
  69. print(data.values[n - 1])
  70. d(resourceId="com.baidu.myapplication:id/tv_sort", text=str(n)).click()
  71. if data.values[n - 1][2] == '测量值':
  72. d(text="合格").click()
  73. # time.sleep(0.2)
  74. print(n, '填入', data.values[n - 1][3])
  75. d(resourceId="com.baidu.myapplication:id/tv_data").send_keys(data.values[n - 1][3])
  76. else:
  77. d(text="合格").click()
  78. # time.sleep(0.2)
  79. d(resourceId="com.baidu.myapplication:id/btn_right").click()
  80. time.sleep(0.2)
  81. ## 区域结束+1
  82. print('wklist', wklist[m][1], n, wklist[m][1] == n, m,i)
  83. if i == wklist[m][1]:
  84. n = n + 1
  85. n = n + 1
  86. i = i + 1
  87. d(resourceId="com.baidu.myapplication:id/btn_left").click()
  88. time.sleep(0.2)
  89. # 两项细则巡检
  90. if __name__ == "__main__":
  91. # d = u2.connect("7XM7F6EUPJSOJNXG")
  92. d = u2.connect_adb_wifi("192.168.3.156:42251")
  93. login(d)
  94. opencheck(d)
  95. 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/556698
推荐阅读
相关标签
  

闽ICP备14008679号