Appium+python+android连接
来源:互联网 发布:乔丹最后一个赛季数据 编辑:程序博客网 时间:2024/06/05 15:17
一、环境搭建
1、appium&android
见 Appium安装
注意校验android的依赖环境
2、python安装
二、android真机demo
1、python代码
import os
from selenium import webdriver
import time
PATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p))
desired_caps = {}
desired_caps['deviceName'] = '850ABL2GGMDD'#设备明,在terminal窗口使用 adb devices命令得到
desired_caps['platformName'] = 'Android'#系统
desired_caps['browserName'] = ''
desired_caps['platformVersion'] = '5.1'#系统版本号
desired_caps['appPackage'] = 'com.sankuai.meituan'
desired_caps['appActivity'] = 'com.meituan.android.tower.reuse.holiday.HolidayNativeHomepageActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
注意:package和activity成对使用
package是包名
activity是页面入口象征 查找方法下面介绍
2、执行
假设python代码在存储为firstdemo.py
(1)开一个terminal窗口 输入 appium 启动appium 查看是否启动成功(标志:显示版本和监听),若不成功检查appium安装情况
(2)开一个terminal,进入first.py所在的路径,使用cd命令;然后 python first.py执行python文件
(3)坐等手机跳转到相应页面
然而...
事与愿违...出了bug...
3、问题
我的package和activity对应的是美团app的旅游出行首页
跑了我的程序
结果:
正常页面是:
(1)分析原因
能跳到该页面说明手机和appium交互成功,说明代码模块的手机参数设置没有问题,只剩下package和activity,又去查了目的地首页的package和activity,无问题。苦恼呀...
(2)对比分析法,有没有planB,测试下,是否结果相同
planB:是有appium client设置参数完成与手机简单交互
appium client
打开该软件,点击上面的android小人儿,将标红的填好。怎么填见上面【二】中python代码的相应内容 【 DeviceName在Terminal使用adb devices得到】
然后点击【launch】icon,同时点击上面的放大镜,顺利的话就会看到页面了
waiting...
结果:是正常页面,沮丧...难道我的代码问题
又返回去看了下代码,查了下wiki和百度上的case,没有问题呀,一脸懵...
再试试,结果,【非正常页面】和我程序跑出来的页面一样,真实万般滋味在心头呀,不造为什么...
那姑且再试一次,结果又正常了,难道是非必现bug?【三次结果不一致】
冷静下来...仔细观察一下上述两个页面相同part的区别:
右上角没有地点。
问题猜想:定位不准??
【尝试】
开启了定位 将页面调到美团app的首页,用appium client执行,每次都能正常
反向思考,退出美团或者不开定位,则每次失败。
【代码尝试】
开启定位,页面调到美团app首页,现象:
会先退出美团,将美团app杀死,然后进美团旅行首页,结果呢,可想而知,每次都失败页面
(3)结论分析
和导师讨论了一下,初步结论是:美团旅行的二级页面是和美团首页关联的,首页将cityid传给旅行页面,旅行页面得到cityid才能正常显示页面内容
换个美团首页辅助该论点:
desired_caps['appPackage'] = 'com.sankuai.meituan'
desired_caps['appActivity'] = '.activity.MainActivity'
执行之后,成功调到美团首页,success!
三、补充得到apk的package和activity的方法
方法一:terminal终端运行:adb logcat | grep ActivityManager #打印日志
方法二:
- 清除logcat内容,使用命令adb logcat -c
- 启动logcat,使用命令adb logcat ActivityManager:I *:s #打印日志【更精简】
得到日志后使用command+F快捷键搜索:Displayed,后面的内容就是,查到了两条:
com.sankuai.meituan/.startup.StartupActivity
com.sankuai.meituan/.activity.MainActivity
很明显package(包名): com.sankuai.meituan
activity的选择看英文翻译:第一条应该是启动入口,第二条是主入口,选择第二条,页面入口一般选择带有“MainActivity”的路径
- Appium+python+android连接
- Appium+Python:Android自动化测试
- Appium+python+Android 计算器case
- linux下配置android+python+appium环境
- 移动端自动化测试 python appium Android
- Android环境搭建Appium测试框架 Python
- appium+Python+Android 自动化测试实例
- Appium+python Android自动化测试环境搭建
- appium-python
- Appium python client 网络连接相关 api 用法
- Appium python client 网络连接相关 api 用法
- appium 连接Android真机出现:could not launch appium inspector的解决方法
- appium android
- 搭建Appium自动化测试平台环境(基于python&android)
- windows 下 android 自动化测试环境搭建(appium+python)
- saucelabs + python +behave+ appium for android自动化测试
- Appium+Genymotion+robotframework+python系列二:Android元素定位
- 使用appium+python对android进行自动化测试
- Ubuntu下OpenCV编程[1]-下载并安装测试OpenCV库
- 洛谷P3381【模板】最小费用最大流
- 基于JPA获取查询中的单条记录
- python时间转换的方法
- expect备份交换机配置
- Appium+python+android连接
- 反向代理到google
- Android MP3录制
- Python 单线程死锁(自己等自己),Rlock解决
- 使用loadrunner做webservices接口的性能测试
- Linux下安装配置ftp
- 备忘录模式
- Tomcat的server.xml详解
- 【项目经理之修炼(5)】《基础篇》别把项目成功当目标