【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()
不积跬步,无以致千里;不集小流,无以成江海。
如转载本文,请还多关注一下我的博客:https://www.cnblogs.com/Owen-ET/;
我的Github地址:https://github.com/Owen-ET————————————
无善无恶心之体, 有善有恶意之动, 知善知恶是良知, 为善去恶是格物。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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