【Python + ATX基于uiaotumator2】之Android—APP自动化简易例子

上代码:

 

复制代码
import uiautomator2 as u2
from time import sleep

d = u2.connect_usb('608ad0fe')

#打开小卖
# d(text=u"小卖安全").click()
d.app_start("cn.sqm.citymine_safety")
sleep(0.2)
#输入用户名
d(resourceId="cn.sqm.citymine_safety:id/et_login_id").send_keys("ceshi07")
d.click(0.924, 0.607)
#输入密码
d(resourceId="cn.sqm.citymine_safety:id/et_login_password").set_text("111111")
d.click(0.924, 0.607)
#点击登录按钮
d(resourceId="cn.sqm.citymine_safety:id/btn_login").click()
#点击发起任务
d(className="android.widget.ImageView", instance=25).click()
#选择任务类型:日常检查
d(resourceId="cn.sqm.citymine_safety:id/tv_select_task_type").click()
sleep(0.5)
d(className="android.view.View").drag_to(0.506, 0.759, duration=0.5)
d(resourceId="cn.sqm.citymine_safety:id/btn_confirm").click()
#检查单位:IOS开发
d(resourceId="cn.sqm.citymine_safety:id/tv_select_inspection_area").click()
d(resourceId="cn.sqm.citymine_safety:id/item_tv_next_level").click()
d(resourceId="cn.sqm.citymine_safety:id/item_tv_department").click()
#隐患类型:其他
d(resourceId="cn.sqm.citymine_safety:id/tv_select_hidden_danger_type").click()
d(className="android.view.View").drag_to(0.506, 0.759, duration=0.5)
d(text='确定').click()
#隐患描述
d(resourceId="cn.sqm.citymine_safety:id/et_hidden_danger_description").set_text("其他问题")
d.click(0.924, 0.607)
#照片:1
d(resourceId="cn.sqm.citymine_safety:id/iv_choose_photos").click()
d(text=u"手机相册").click()
d(resourceId="cn.sqm.citymine_safety:id/v_selected", className="android.widget.ImageView", instance=10).click()
d(resourceId="cn.sqm.citymine_safety:id/done").click()
#违反制度:违反员工行为规范
d(resourceId="cn.sqm.citymine_safety:id/iv_add_violation").click()
d(resourceId="cn.sqm.citymine_safety:id/item_tv_content_violation", text=u"违反员工行为规范").click()
d(resourceId="cn.sqm.citymine_safety:id/tv_complete").click()
#向上滑动拖拽
d(className="android.widget.LinearLayout").drag_to(0.498, 0.00, duration=0.5)
#整改期限:选择9月1号
d(resourceId="cn.sqm.citymine_safety:id/tv_please_the_rectification_date").click()
for i in range(2):
    d(resourceId="cn.sqm.citymine_safety:id/day").drag_to(0.82, 0.8, duration=0.5)
d(text='确定').click()
#协同人员
list = ["开发02",]
d(resourceId="cn.sqm.citymine_safety:id/item_tv_personnel_name").click()
for i in range(len(list)):
    d(resourceId="cn.sqm.citymine_safety:id/item_tv_personnel_name", text=list[i]).click()
    d(resourceId="cn.sqm.citymine_safety:id/tv_complete").click()
#单位负责人
d(resourceId="cn.sqm.citymine_safety:id/item_tv_personnel_name", className="android.widget.TextView", instance=len(list)+1).click()
for i in range(2):
    d(resourceId="cn.sqm.citymine_safety:id/lv_area_manager").click()
d(resourceId="cn.sqm.citymine_safety:id/item_tv_department", text=u"区域07").click()
d(resourceId="cn.sqm.citymine_safety:id/tv_complete").click()

#返回首页
sleep(0.5)
d.click(0.063, 0.068)
#点击我的
d(resourceId="cn.sqm.citymine_safety:id/rb_single_center").click()
#退出账号
d(text="安全退出账号").click()
#返回首页home
d.press("home")

#測試完成關閉軟件
d.service("uiautomator").stop()
复制代码

 

posted @   Owen_ET  阅读(1452)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
  1. 1 イエスタデイ(翻自 Official髭男dism) 茶泡饭,春茶,kobasolo
  2. 2 模様 (TV size ver.) Ivy to Fraudulent Game
  3. 3 河口恭吾
  4. 4 愛してる 高鈴
  5. 5 一生所爱 卢冠廷,莫文蔚
  6. 6 世间美好与你环环相扣 柏松
  7. 7 理想三旬 陈鸿宇
  8. 8 不浪漫罪名 王杰
  9. 9 樱花树下 张敬轩
  10. 10 因为你在 达闻西乐队,福禄寿FloruitShow
  11. 11 悬溺 葛东琪
一生所爱 - 卢冠廷,莫文蔚
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 唐书琛

作曲 : 卢冠廷

从前现在过去了再不来

红红落叶长埋尘土内

开始终结总是没变改

天边的你飘泊白云外

苦海翻起爱恨

在世间难逃避命运

相亲竟不可接近

或我应该相信是缘分

情人别后永远再不来(消散的情缘)

无言独坐放眼尘世外(愿来日再续)

鲜花虽会凋谢(只愿)但会再开(为你)

一生所爱隐约(守候)在白云外(期待)

苦海翻起爱恨

在世间难逃避命运

相亲竟不可接近

或我应该相信是缘分

苦海翻起爱恨

在世间难逃避命运

相亲竟不可接近

或我应该相信是缘分

点击右上角即可分享
微信分享提示