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

上代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/08/31 09:43
# @Author  : zc
# @File    : test.py

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("ceshi06")
d.click(0.924, 0.607)
#输入密码
d(resourceId="cn.sqm.citymine_safety:id/et_login_password").set_text("123456")
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()
d(resourceId="cn.sqm.citymine_safety:id/item_tv_personnel_name", text=list[0]).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"区域06").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/p/9577474.html

时间: 2024-11-03 21:10:59

【Python + uiaotumator2】之Android—APP自动化简易例子的相关文章

android app自动化测试之UIAutomator

一.UIAutomator Android自动化测试工具有很多,但是要免费.易上手,本人觉得就直接使用Eclipse自带的UIAutomator就不错.测试人员无需跟开发要代码信息,只要手机上有安装之后的APP自己就能做出自动测试用例,况且一通百通,就算是不满足于UI测试的,找个简单易上手的先明白原理,再深入了解其它复杂工具也会轻松很多.何乐而不为呢? UIAutomator是Eclipse自带的用于UI自动化测试工具,可仿真APP上的单击.滑动.输入文本等操作. 在使用之前,需要安装好java

用python和unittest编写app自动化测试用例

import unittest import webdriver import time class Test(unittest.TestCase): @classmethod def setUpClass(self): cap = {} cap['platformName'] = 'Android' cap['platformVersion'] = '4.4.2' cap['deviceName'] = '7N2SSE158P001892' cap['noReset'] = 'noReset'

[Python 应用:Android App] Hello World App 之Kivy 介绍以及基本配置

1.   Kivy 是什么?    简单的说就是一个开源的库,这个库可以用来开发各种App. https://kivy.org/#home 2. Kivy能做什么? 3.    用Python写一个安卓app的基本流程 一:当然是下载安装Python 二:确保安装的Python具备最新的    [pip  wheel  setuptools  virtualenv]等模块. 如果没有或者不是最新的到[https://pypi.org/]下载最新的库安装. 三:下载并安装kivy的依赖库 [doc

Android app自动化测试之Python+Appium环境搭建

1.安装JDK (1)JDK安装时会有两次,一次是jdk,第二次是jre. (2)环境变量配置: 添加JAVA_HOME变量, 值:Jdk的安装路径 添加CLASSPATH变量,值: .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar 修改path变量,加上这句 %JAVA_HOME%\bin; (3)命令行输入java命令检测是否安装成功 2.安装ADT (1)网址:http://tools.android-studio.org/index.p

python专项测试——Android App自动化测试框架

1 为什么需要框架?   代码混乱,难阅读: 重复编码,效率低:需求变化,难维护: 一 自动化实例 1 准备测试的app:准备测试环境:实现脚本: 2 测试app:只有登录功能    测试环境: Appium(Android/IOS); Android SDK; Appium-Python-Client; Selenium(Appium-Python-Client继承于Selenium);  UIAutomatorViewer Pycharm 3 实现脚本 在Pycharm中编写脚本: 用UIA

python专项测试——Android App Api接口测试

一  基础概念 1 API:应用编程接口,软件系统不同组成部分衔接的约定. 2 种类: 面向对象语言的API 库与框架的API API与协议 API与设备接口 Web API 3 涉及种类:Web API, 即http api    4  http api 接口种类: get , post,  put,  delete , options, head, trace, connect 5 主要讲  get ,post ;  涉及场景:客户端的容错能力,服务器处理错误数据的能力. 二 Fiddler

用java和junit编写app自动化测试用例

package myTest; import static org.junit.Assert.*; import io.appium.java_client.android.AndroidDriver; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import

android fragment(android.support.v4.app.Fragment和android.app.Fragment

(1)android.app.Fragment:兼容的最低版本是android:minSdkVersion="11" 因此你的应用不能兼容3.0以下的应用. 可以使用<fragment>标签的,这点很重要,如果是用android.support.v4.app.Fragment的话,是不能是用<fragment>标签的,会抛出android.view.InflateException: Binary XML file line #7: Error inflatin

Appium+Python app自动化测试之脚本启动和停止Appium服务

研究了一段时间的Appium android app的自动化测试,工作中需要连接多台手机终端同时执行测试用例,我实现的方式是获取用例中需要执行用例的设备id个数以及实际连接到的设备数(通过adb devices获取),然后启动相应数量的Appium 服务,以便每个设备执行时并发进行并且互不影响.当然也可以通过selenium grid来实现,只是目前还在学习研究中,还是先把目前启动多个appium服务实现的方式记录下来. 一.Windows下启动单个appium服务 需要启动多个appium服务