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

importuiautomator2 as u2importunittestimportuiautomator2.ext.htmlreport as htmlreportfrom time importsleepclassTestcitymineSafety(unittest.TestCase):

@classmethoddefsetUpClass(cls):

cls.u= u2.connect_usb(‘708ad0fy‘)

cls.u.healthcheck()#解锁屏幕并启动uiautomator服务

#hrp = htmlreport.HTMLReport(cls.u, ‘report‘)

#hrp.patch_click()

#cls.u.disable_popups(True) # 允许自动处理弹出框

cls.u.toast.show("测试开始", 3)

@classmethoddeftearDownClass(cls):

cls.u.toast.show("测试结束", 3)

cls.u.app_stop_all()

cls.u.service("uiautomator").stop() #停止uiautomator守护程序,允许其他测试框架如 appium 运行

defsetUp(self):#启动小卖安全

self.d = self.u.session("cn.sqm.citymine_safety") #restart app

sleep(0.2)#输入用户名

self.d(resourceId="cn.sqm.citymine_safety:id/et_login_id").send_keys("zcjc07")

self.d.click(0.924, 0.607)#输入密码

self.d(resourceId="cn.sqm.citymine_safety:id/et_login_password").set_text("111111")

self.d.click(0.924, 0.607)#点击登录按钮

self.d(resourceId="cn.sqm.citymine_safety:id/btn_login").click()print("登陆成功!")deftearDown(self):#返回首页

#sleep(0.5)

#self.d(className="android.widget.ImageView").click()

#点击我的

self.d(resourceId="cn.sqm.citymine_safety:id/rb_single_center").click()#退出账号

self.d(text="安全退出账号").click()#返回首页home

self.d.press("home")print("返回首页")#pass

def testPrivateFM(self): #发起任务

#点击发起任务

self.d(className="android.widget.ImageView", instance=10).click()#选择任务类型:全部0、专项1、日常2、火灾3

self.d(resourceId="cn.sqm.citymine_safety:id/tv_select_task_type").click()

sleep(0.5)for i inrange(0):

self.d(className="android.view.View").drag_to(0.498, 0.806, duration=0.5)

self.d(resourceId="cn.sqm.citymine_safety:id/btn_confirm").click()#检查单位:IOS开发

self.d(resourceId="cn.sqm.citymine_safety:id/tv_select_inspection_area").click()

self.d(resourceId="cn.sqm.citymine_safety:id/item_tv_next_level").click()

self.d(text=‘区域1‘).click()#隐患类型:其他0、交通1、维稳2、火灾3

self.d(resourceId="cn.sqm.citymine_safety:id/tv_select_hidden_danger_type").click()for i inrange(0):

self.d(className="android.view.View").drag_to(0.49, 0.8, duration=0.5)

self.d(text=‘确定‘).click()#隐患描述

self.d(resourceId="cn.sqm.citymine_safety:id/et_hidden_danger_description").set_text("其他问题")

self.d.click(0.924, 0.607)#照片:1

self.d(resourceId="cn.sqm.citymine_safety:id/iv_choose_photos").click()

self.d(text=u"手机相册").click()

self.d(resourceId="cn.sqm.citymine_safety:id/v_selected", className="android.widget.ImageView", instance=10).click()

self.d(resourceId="cn.sqm.citymine_safety:id/done").click()#违反制度:违反员工行为规范

self.d(resourceId="cn.sqm.citymine_safety:id/iv_add_violation").click()

self.d(resourceId="cn.sqm.citymine_safety:id/item_tv_content_violation", text=u"其他").click()

self.d(resourceId="cn.sqm.citymine_safety:id/tv_complete").click()#向上滑动拖拽

self.d(className="android.widget.LinearLayout").drag_to(0.498, 0.00, duration=0.5)#整改期限:

self.d(resourceId="cn.sqm.citymine_safety:id/tv_please_the_rectification_date").click()for i inrange(0):

self.d(resourceId="cn.sqm.citymine_safety:id/day").drag_to(0.82, 0.8, duration=0.5)

self.d(text=‘确定‘).click()#协同人员

list = ["aa", "zc检查01"]

self.d(resourceId="cn.sqm.citymine_safety:id/item_tv_personnel_name").click()for i inrange(len(list)):

self.d(resourceId="cn.sqm.citymine_safety:id/item_tv_personnel_name", text=list[i]).click()

self.d(resourceId="cn.sqm.citymine_safety:id/tv_complete").click()#区域负责人

self.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):

self.d(resourceId="cn.sqm.citymine_safety:id/lv_area_manager").click()

self.d(resourceId="cn.sqm.citymine_safety:id/item_tv_department", text=u"zc区域04").click()

self.d(resourceId="cn.sqm.citymine_safety:id/tv_complete").click()

sleep(0.5)#提交按钮

self.d(resourceId="cn.sqm.citymine_safety:id/btn_submit").click()#断言

#向下滑动拖拽

self.d(className="android.widget.LinearLayout").drag_to(0.473, 0.99, duration=0.5)

sleep(0.5)

text= self.d(resourceId="cn.sqm.citymine_safety:id/tv_select_task_type").get_text()print(text)

self.assertEqual(text,"专项任务","错误!")if __name__ == ‘__main__‘:

unittest.main()

python自动化测试脚本怎么编写_【Python + uiautomator2】之编写unittest自动化测试脚本...相关推荐

  1. python写手机脚本脱离电脑_在手机里编写python脚本控制手机

    今天我有一个大胆的想法,想在手机里面编写python脚本自动化控制手机.既然有了这么大胆而想法,而且我还能实现,那么就有了我现在这篇文章. 如何在手机里面编程 首先先介绍一款能直接在手机里面运行代码的 ...

  2. python脚本编写_【PyQGIS】编写用于处理框架(QGIS3)的Python脚本

    可以编写可通过QGIS中的Python控制台运行的独立pyqgis脚本.进行一些调整,即可使您的独立脚本通过处理框架运行.这具有几个优点.首先,获取用户输入和写入输出文件要容易得多,因为Process ...

  3. python程序怎么保存运行_教你如何编写、保存与运行 Python 程序

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

  4. python如何检验显著性差异_[Python] 如何证明两组样本有显著性差异(t-test假设检验) | 学步园...

    现有两组样本数据,假如它们分别基于两套不同的方法,或者测于不同的设备,又或是出自两个人之手,如何证明它们有或没有显著性差别呢?当然可以拿个Excel表把数据画个图,然后找一堆人来投票,看觉得差不多还是 ...

  5. python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)

    [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...

  6. 四全集学python选哪种电脑_“Python教程哪个版本最适合学习?“python教程全集

    python教程,求一套比较好的python教程 好不好主要先看你自己,理解能力样,有没有接触过编程,有没础,这很重要: 看教程,能不能先给你建立起知识体系框架,许多教程一上来就直接给你灌输知识很让人 ...

  7. python如何设置字体大小_[Python Basic]如何设置 Python 的运行环境

    一如既往地, 咱们不仅仅是学习 Python 的基础知识, 同时, 也按照2/8 规律学习关键知识的关键部分 - python 核心词汇 如何安装 Python 下载 Python 打开网址:http ...

  8. jenkins 脚本编写_使用Jenkins 2编写以代码形式编写管道和实现DevOps的简介

    jenkins 脚本编写 DevOps的关键思想之一是" 基础结构即代码"(具有用代码表示交付/部署管道的基础结构),就像流过它的产品一样. Jenkins工作流工具是用于创建许多 ...

  9. python小软件制作教程_[Python]手把手教程:Python制作番茄钟

    这篇文章是根据Udacity的免费课程 编程基础:Python所做的笔记,适合零基础学习Python 我们先了解这个番茄钟的概念,就是每隔一段固定的时间就提醒你休息一下,可能是播放一段音乐, 弹出一个 ...

  10. windows脚本编制引擎_从零开始的场景编辑器(二):脚本系统

    为什么需要一个脚本系统 一般来说,一个工程只需要一种编程语言就足够了.事实也确实如此,强大如C++,图形渲染(DX,OpenGL),数据库(levelDB,RocksDB),深度学习(Caffe,Te ...

最新文章

  1. 7、MySQL数据类型的选择
  2. [翻译]关于中国计算机行业未来发展不得不吐的二三事儿。信任、社区、成功故事?...
  3. 海信计算机辅助统,海信计算机辅助手术系统将覆盖山东三级医院
  4. 【java】编写一个圆柱体类Cylinder,它继承于Circle类
  5. 一段程序看懂比特币原理
  6. java zoom,进口javazoom不能得到解决
  7. 微信公众号封面一键生成器
  8. 鹏业安装算量智能计算综合布线功能操作
  9. Spring之DI依赖注入
  10. winrar破解方法
  11. 【转载】理解dropout
  12. 手游开发攻防——二、基础篇(更新完)
  13. mysql未开启binlog恢复数据_MYSQL bin_log 开启及数据恢复
  14. 单片机加减法计算器_十进制加减法计算器单片机设计.doc
  15. C语言LMS双麦克风消噪算法,芯片内部的噪声抑制算法,语音芯片来说也是一样(双麦克风降噪理念)...
  16. 所生成项目的处理器架构“MSIL”与引用“ ”的处理器架构“AMD64”不匹配。
  17. Linux 查看磁盘IO的使用
  18. 使用appium桌面版在win平台连接逍遥模拟器(以梦幻西游手游为例)
  19. 三相永磁同步电机无速度传感器控制(基于扩展反电动势)
  20. PTA 7-21 三角形面积

热门文章

  1. php只刷新一次,怎么让php网页指只刷新一次
  2. gitlab批量新增用户
  3. js产生页面内的顺序序列号
  4. html树图制作,d3.js制作树结构图
  5. app 模拟器抓包 burpsuite_来看黑客是如何使用Proxifier+burpsuite代理https协议数据包...
  6. mysql数据库一列多值查询
  7. java两个对象属性比较
  8. Linux环境运行Jmeter
  9. 如何将日志配置文件放入到Apollo配置中心并支持热更新
  10. 用代码复杂度分析风险