捕捉弹窗 https://github.com/appium/appium/issues/968完整有截屏的例子:https://github.com/bitbar/testdroid-samples/blob/master/appium/sample-scripts/python/testdroid_android_hybrid.py有详细解释的例子:http://www.cnblogs.com/fnng/p/3300788.html

1、unittest
2、截屏并保存driver.save_screenshot("F:/testSpace/unittest0/1.png")

2、setUpClass方法实现,一次性设置3、中文编码:文件头添加 #coding:utf-8

完整登陆&退出用例:
  1. #coding:utf-8
  2. ## XX_login_logout_testcase
  3. import unittest
  4. import time
  5. from appium import webdriver
  6.  
  7. classLoginTestCase(unittest.TestCase):
  8. @classmethod
  9. def setUpClass(cls):
  10. print("------------------setUp Test-----------------------")
  11. desired_caps ={}
  12. desired_caps['platformName']='Android'
  13. desired_caps['platformVersion']='4.4.4'
  14. desired_caps['deviceName']='Android Emulator'
  15. desired_caps['appPackage']='com.XX.activity'
  16. desired_caps['appActivity']='.AppStartActivity'
  17. desired_caps['unicodeKeyboard']=True
  18. desired_caps['resetKeyboard']=True
  19. cls.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
  20. @classmethod
  21. def tearDownClass(cls):
  22. cls.driver.close_app()
  23. cls.driver.quit()
  24. print("-------------------- Byebye ----------------------- ")
  25. def setUp(self):
  26. print("setup")
  27. def tearDown(self):
  28. print("teardown")
  29. def test1_log_in(self):
  30. time.sleep(5)
  31. # wait for the log advertise
  32. self.driver.find_element_by_name(u"我的").click()
  33. self.driver.find_element_by_id('com.XX.activity:id/tv_userheadloginfail_login').click()# 点击登陆
  34. # log by phone number and password
  35. self.driver.find_element_by_id('com.XX.activity:id/mobile_login').click()
  36. self.driver.find_element_by_id('android:id/text1').click()
  37. self.driver.find_element_by_id('com.XX.activity:id/edt_mobilenum').send_keys("13580478329")
  38. self.driver.find_element_by_id('com.XX.activity:id/edt_password').send_keys("1234567")
  39. self.driver.find_element_by_id('com.XX.activity:id/login').click()
  40. time.sleep(5)
  41. self.driver.save_screenshot("F:/testSpace/loginTestCase1/src/loginByPhoneNumber.png")
  42. print("login ok")
  43. def test2_log_out(self):
  44. # log out
  45. self.driver.find_element_by_name(u"我的").click()
  46. self.driver.find_element_by_id('com.XX.activity:id/rl_usercontent_setting').click()
  47. self.driver.find_element_by_id('com.XX.activity:id/exit').click()
  48. time.sleep(2)
  49. self.driver.find_element_by_id('android:id/button2').click()
  50. time.sleep(5)
  51. self.driver.save_screenshot("F:/testSpace/loginTestCase1/src/logout.png")
  52. print("log out ok")
  53. print("Test2 ok")
  54. if __name__ =='__name__':
  55. unittest.main()
 
 

附件列表

appium自动化测试(4)部分方法&unitest初步使用的更多相关文章

  1. Python+Appium自动化测试(7)-截图方法

    一,selenium模块的两种截图方法 get_screenshot_as_file(filename) 参数filename为截图文件保存的绝对路径,如: driver.get_screenshot ...

  2. Python+Appium自动化测试(6)-元素等待方法与重新封装元素定位方法

    在appium自动化测试脚本运行的过程中,因为网络不稳定.测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待 ...

  3. 全网最新方法:Win10下如何安装和搭建appium自动化测试环境

    为了方便大家,下面是本人安装和搭建appium所需要的软件,自取. 链接:https://pan.baidu.com/s/1wl5Xnos4BmnSZsBRd6B5YA#list/path=%2F  ...

  4. 基于python的Appium自动化测试的坑

    真的感谢@虫师 这位来自互联网的老师,让我这个原本对代码胆怯且迷惑的人开始学习自动化测试. 一开始搜索自动化测试的时候,虫师的博客园教程都是在百度的前几位的,我就跟着虫师博客园里面的教程学习.后来学s ...

  5. Appium自动化测试3之获取apk包名和launcherActivity后续

    接着“Appium自动化测试3之获取apk包名和launcherActivity”章节介绍 测试脚本 1.测试脚本如下: # -*- coding:utf-8 -*- import os, time, ...

  6. Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)

    简介 经过一段时间的准备,完善的差不多了,继续分享有关Appium自动化测试框架综合实践.想必小伙伴们有点等不及了吧! driver配置封装 kyb_caps.yaml 配置表 参考代码 platfo ...

  7. Appium+python自动化(四十)-Appium自动化测试框架综合实践 - 代码实现(超详解)

    1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.由于时间的关系,宏哥这里用代码给小伙伴演示两个模块:注册和登录. 2.业务模块封装 因为现在各种APP的层出不群 ...

  8. Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)

    1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...

  9. Appium自动化测试教程-自学网-adb命令

    adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...

随机推荐

  1. ACM、OI、OJ题目常用代码模板

    仓库源码地址:https://github.com/richenyunqi/code-templates 本仓库主要提供 ACM.OI.OJ.PAT.CSP 题目中常见算法和数据结构的实现,它们都以基 ...

  2. 重新整理 .net core 实践篇————cookie 安全问题[三十八]

    前言 简单整理一下cookie的跨站攻击,这个其实现在不常见,因为很多公司都明确声明不再用cookie存储重要信息,不过对于老站点还是有的. 正文 攻击原理: 这种攻击要达到3个条件: 用户访问了我们 ...

  3. 面试题三:MySQL

    MySQL有哪些存储引擎? MyISAM.InnoDB.CSV.Memory等 MyISAM和InnoDB比较: InnoDB MyISAM 事务 支持 不支持 存储限制 64TB 无 锁粒度 行锁 ...

  4. 打通“任督二脉”:Android 应用安装优化实战

    疑问: (1)了解APK安装流程有什么好处 (2)了解APK安装流程可以解决什么问题 一.可以在安装流程里做什么 安装就分为下面三个阶段,每个阶段可以做些什么工作,可以帮助我们优化安装流程,解决安装后 ...

  5. SpringMVC(5)数据绑定-2

    在SpringMVC(4)数据绑定-1中我们介绍了如何用@RequestParam来绑定数据,下面我们来看一下其它几个数据绑定注解的使用方法. 1.@PathVariable 用来绑定URL模板变量值 ...

  6. mysql中的条件语句case when/if函数

    主要知识点为case函数,if函数,ifnull函数,elt函数几部分,主要用于mysql语句中的逻辑判断 待操作的表如下: p.p1 { margin: 0; font: 16px Menlo; c ...

  7. swoole实现任务定时自动化调度详解

    开发环境 环境:lnmp下进行试验 问题描述 这几天做银行对帐接口时,踩了一个坑,具体需求大致描述一下. 银行每天凌晨后,会开始准备昨天的交易流水数据,需要我们这边请求拿到. 因为他们给的是一个bas ...

  8. 63. Unique Paths II 动态规划

    description: https://leetcode.com/problems/unique-paths/ 机器人从一堆方格的左上角走到右下角,只能往右或者往下走 ,问有几种走法,这个加了难度, ...

  9. WPF教程八:如何更好的使用Application程序集资源

    这一篇单独拿出来分析这个程序集资源,为的就是不想让大家把程序集资源和exe程序强关联,因为程序集资源实际上是二进制资源,后续编译过程中会被嵌入到程序集中,而为了更方便的使用资源,我们要好好梳理一下程序 ...

  10. Docker进阶:容器卷、DockerFile、Docker网络原理

    1.Docker镜像 1.1镜像是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和机遇运行环境开发的软件. 包含一个软件的所有内容.蒋所有的应用和环境,直接打包为docker镜像,直 ...