appium自动化测试(4)部分方法&unitest初步使用
捕捉弹窗 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
完整登陆&退出用例:
#coding:utf-8## XX_login_logout_testcaseimport unittestimport timefrom appium import webdriverclassLoginTestCase(unittest.TestCase):@classmethoddef setUpClass(cls):print("------------------setUp Test-----------------------")desired_caps ={}desired_caps['platformName']='Android'desired_caps['platformVersion']='4.4.4'desired_caps['deviceName']='Android Emulator'desired_caps['appPackage']='com.XX.activity'desired_caps['appActivity']='.AppStartActivity'desired_caps['unicodeKeyboard']=Truedesired_caps['resetKeyboard']=Truecls.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)@classmethoddef tearDownClass(cls):cls.driver.close_app()cls.driver.quit()print("-------------------- Byebye ----------------------- ")def setUp(self):print("setup")def tearDown(self):print("teardown")def test1_log_in(self):time.sleep(5)# wait for the log advertiseself.driver.find_element_by_name(u"我的").click()self.driver.find_element_by_id('com.XX.activity:id/tv_userheadloginfail_login').click()# 点击登陆# log by phone number and passwordself.driver.find_element_by_id('com.XX.activity:id/mobile_login').click()self.driver.find_element_by_id('android:id/text1').click()self.driver.find_element_by_id('com.XX.activity:id/edt_mobilenum').send_keys("13580478329")self.driver.find_element_by_id('com.XX.activity:id/edt_password').send_keys("1234567")self.driver.find_element_by_id('com.XX.activity:id/login').click()time.sleep(5)self.driver.save_screenshot("F:/testSpace/loginTestCase1/src/loginByPhoneNumber.png")print("login ok")def test2_log_out(self):# log outself.driver.find_element_by_name(u"我的").click()self.driver.find_element_by_id('com.XX.activity:id/rl_usercontent_setting').click()self.driver.find_element_by_id('com.XX.activity:id/exit').click()time.sleep(2)self.driver.find_element_by_id('android:id/button2').click()time.sleep(5)self.driver.save_screenshot("F:/testSpace/loginTestCase1/src/logout.png")print("log out ok")print("Test2 ok")if __name__ =='__name__':unittest.main()
附件列表
appium自动化测试(4)部分方法&unitest初步使用的更多相关文章
- Python+Appium自动化测试(7)-截图方法
一,selenium模块的两种截图方法 get_screenshot_as_file(filename) 参数filename为截图文件保存的绝对路径,如: driver.get_screenshot ...
- Python+Appium自动化测试(6)-元素等待方法与重新封装元素定位方法
在appium自动化测试脚本运行的过程中,因为网络不稳定.测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待 ...
- 全网最新方法:Win10下如何安装和搭建appium自动化测试环境
为了方便大家,下面是本人安装和搭建appium所需要的软件,自取. 链接:https://pan.baidu.com/s/1wl5Xnos4BmnSZsBRd6B5YA#list/path=%2F ...
- 基于python的Appium自动化测试的坑
真的感谢@虫师 这位来自互联网的老师,让我这个原本对代码胆怯且迷惑的人开始学习自动化测试. 一开始搜索自动化测试的时候,虫师的博客园教程都是在百度的前几位的,我就跟着虫师博客园里面的教程学习.后来学s ...
- Appium自动化测试3之获取apk包名和launcherActivity后续
接着“Appium自动化测试3之获取apk包名和launcherActivity”章节介绍 测试脚本 1.测试脚本如下: # -*- coding:utf-8 -*- import os, time, ...
- Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
简介 经过一段时间的准备,完善的差不多了,继续分享有关Appium自动化测试框架综合实践.想必小伙伴们有点等不及了吧! driver配置封装 kyb_caps.yaml 配置表 参考代码 platfo ...
- Appium+python自动化(四十)-Appium自动化测试框架综合实践 - 代码实现(超详解)
1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.由于时间的关系,宏哥这里用代码给小伙伴演示两个模块:注册和登录. 2.业务模块封装 因为现在各种APP的层出不群 ...
- Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)
1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...
- Appium自动化测试教程-自学网-adb命令
adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...
随机推荐
- 模拟windows10计算器的实现
用户界面部分: import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.HashMap; impo ...
- 三代码使用QScrollArea
QScrollArea是QT封装好的一个滑动界面类 构造函数如下: 指定一个父对象就行,构造函数提供一个滑动的区域,但是这个区域里是没有内容的,构造函数介绍里面让我们看setWidget()这个函数, ...
- 16、如何将安装在chrome上的插件(扩展程序)打包成".crx"文件
1.打开扩展程序: 2.打开开发者模式并选择要打包的插件: 3.打包扩展程序: (1) (2) (3)
- .NET Core如何全局获取用户信息?
前言 在增删改查中的增和改操作中,我们经常需要更新数据流的创建人和修改人,无论我们项目是基于DDD,抑或是简单仅有服务层,此时我们都需要获取用户信息,那么我们只能将用户标识从控制器层层传递到服务或仓储 ...
- Java反射机制开发经验总结
我在实际项目当中有经常用到反射机制,故而将学会的反射用法做一些汇总笔记,当做以后复盘所用. 存在这样一个类: package com.example.demo; import com.alibaba. ...
- solidity 小案例 收费站
solidity IDE下载地址 https://pan.baidu.com/s/1cY8VgDqB9Wt9VzK-Nocbyw 代码案例: pragma solidity ^0.4.0; //创建合 ...
- SQL Server数据库阻塞,死锁查询
sql 查询卡顿数据库 SELECT SPID=p.spid, DBName = convert(CHAR(20),d.name), ProgramName = program_name, Login ...
- Postgresql:postgres命令行导入sql文件
sql文件导入 psql -d jdbc -h localhost -p 5432 -U postgres -f /home/sql/test.sql #-d 数据库名称 #-h ip地址 #-p 端 ...
- Java实验项目三——简单工厂模式
Program: 请采用采用简单工厂设计模式,为某个汽车销售店设计汽车销售系统,接口car至少有方法print(), 三个汽车类:宝马.奥迪.大众 (属性:品牌,价格),在测试类中根据客户要求购买的汽 ...
- 42. Trapping Rain Water [dp][stack]
description: Given n non-negative integers representing an elevation map where the width of each bar ...