Appium 自动化测试(6) -- 使用Appium操作YY语音例子
#!/usr/bin/env python
# -*- coding: utf-8 -*- import os
import unittest
from appium import webdriver
import time # Returns abs path relative to this file and not cwd
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
) class YY(unittest.TestCase):
def setUp(self):
desired_caps = {
'platformName': 'Android',
'deviceName': '611AKBPP22HR5', # adb devices查到的设备名
'platformVersion': '4.4.2',
'appPackage': 'com.duowan.mobile', # 被测App的包名
'appActivity': 'com.yy.mobile.ui.splash.SplashActivity',# 启动时的Activity
# 'app':PATH('E:\yymobile_client-7.7.1.apk')
}
self.driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps) def tearDown(self):
self.driver.quit() def test_index_module(self):
self.driver.wait_activity('com.yy.mobile.ui.home.MainActivity',30)
el = self.driver.find_element_by_name("小视频")
self.assertIsNotNone(el)
el.click()
time.sleep(3)
yueBang = self.driver.find_element_by_name("一起玩")
self.assertIsNotNone(yueBang)
yueBang.click() if __name__ == '__main__':
# suite = unittest.TestLoader().loadTestsFromTestCase(YY)
# unittest.TextTestRunner(verbosity=2).run(suite)
unittest.main()
查看包名与启动activity:推荐使用aapt工具,aapt是sdk自带的一个工具,在sdk\build-tools目录下
D:\Android\sdk\build-tools>aapt dump badging F:\ChromeDownloads\yymobile_client-7.7..apk
package: name='com.duowan.mobile' versionCode='' versionName='7.7.1' platformBuildVersionName='6.0-2704002'
sdkVersion:''
targetSdkVersion:''
uses-permission: name='android.permission.ACCESS_WIFI_STATE'
......
launchable-activity: name='com.yy.mobile.ui.splash.SplashActivity' label='' icon=''
......
查看当前activity:打开到对应的窗口后,执行命令 adb shell dumpsys window w |findstr \/ |findstr name=
D:\Android\sdk\build-tools>adb shell dumpsys window w |findstr \/ |findstr name=
mSurface=Surface(name=com.duowan.mobile/com.yy.mobile.ui.home.MainActivity)
等待activity:driver.wait_activity,30s后超时
self.driver.wait_activity('com.yy.mobile.ui.home.MainActivity',30)
根据name定位元素

el = self.driver.find_element_by_name("小视频")

***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***
Appium 自动化测试(6) -- 使用Appium操作YY语音例子的更多相关文章
- Python+Appium自动化测试(10)-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)
滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动.拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等.这些需要针对控件元素的滑动操作,或者 ...
- 手机自动化测试培训:appium目录结构分析
手机自动化测试培训:appium目录结构分析 移动端的自动化测试越来越普遍,poptest率先退出移动端自动化测试的课程,以appuim的python脚本版本作为授课基础,后期陆续退出java版本 ...
- Appium python自动化测试系列之appium环境搭建(二)
2.1 基础环境搭建 当我们学习新的一项技术开始基本都是从环境搭建开始,本书除了第一章节也是的,如果你连最基础的环境都没有那么我们也没必要去说太多,大概介绍一下: 1.因为appium是支持andr ...
- Appium自动化测试3之获取apk包名和launcherActivity后续
接着“Appium自动化测试3之获取apk包名和launcherActivity”章节介绍 测试脚本 1.测试脚本如下: # -*- coding:utf-8 -*- import os, time, ...
- appium自动化测试(二)
一. 获取应用包名和入口activity 获取应用包名和入口activity:aapt命令 aapt目录: 安卓sdk的build-tools目录下(如果要在cmd里直接运行,要配置环境变量,否则需要 ...
- Appium自动化测试环境搭建
前言 Appium是一个开源的自动化测试框架,支持跨平台,支持多种编程语言,可用于原生,混合和移动web应用程序,使用webdriver驱动ios,android应用程序.那么为了学习app自动化测试 ...
- Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...
- Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)
1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...
- Appium自动化测试教程-自学网-adb命令
adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...
随机推荐
- 使用wireshark分析TLS
1.基本概念 SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层.SSL通过互相认证.使用数字签名确保完整性.使用加密确保私密 ...
- 如何修改git分支名名称
1. 修改本地git分支名称指令 git branch -m oldBranchName newBranchName 2. 修改远程仓库(github)上的分支名称 git本地分支名已修改,只需推送到 ...
- 如何在python3.5环境下安装BeautifulSoup?
首先是安装: 1.到http://www.crummy.com/software/BeautifulSoup/网站上上下载 2.下载完成之后需要解压缩,假设放到D:/python下. 3.运行cmd, ...
- mysql 数据操作 单表查询 limit 练习
1. 分页显示,每页5条 mysql,; +----+------------+--------+-----+------------+---------+--------------+------- ...
- python 面向对象· self 讲解
self就是参数 以形参形式 5.self是什么鬼? self是一个python自动会给传值的参数 那个对象执行方法,self就是谁. obj1.fetch('selec...') self=obj1 ...
- java-基础-【四】实际编程中的对象
一.概述 实际编程开发中,仅仅一个数据库对象映射是满足不了各种复杂需求. O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关 ...
- python模块之xlrd(excl调用模块)
一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 二.使用介绍 1.导入模块 import x ...
- synchronized修饰的方法之间相互调用
1:synchronized修饰的方法之间相互调用,执行结果为There hello ..因为两个方法(main,hello)的synchronized形成了互斥锁. 所以当main方法执行完之后 ...
- 窄依赖与宽依赖&stage的划分依据
RDD根据对父RDD的依赖关系,可分为窄依赖与宽依赖2种. 主要的区分之处在于父RDD的分区被多少个子RDD分区所依赖,如果一个就为窄依赖,多个则为宽依赖.更好的定义应该是: 窄依赖的定义是子RDD的 ...
- sqlserver三种分页方式性能比较
Liwu_Items表,CreateTime列建立聚集索引 第一种,sqlserver2005特有的分页语法 declare @page intdeclare @pagesize intset @pa ...