android appium微信等自动化的那些坑儿
1.下载appium自动化安装环境:
appium客户端
python语言支持
android studio(包含android sdk和adb)
java开发环境
2.微信x5内核调试(网上有详细配置)
打开微信,在聊天中输入debugx5.qq.com,点击进入x5调试页面,
点击信息,打开‘是否打开TBS内核Inspector调试功能’即可
3.id变化
微信中控件有的是持续变化的,在不同的手机上id可能不相同,
所以最好不使用id的形式抓去控件。(app原生界面可以采用android
studio自带的UiAutomator查看)
4.切换webview和native界面
微信中你要随时切换webview的context,在webview界面进行操作,需要切换到
微信‘WEBVIEW_com.tencent.mm:tools’,使用完成后,在切换回‘NATIVE_APP’,还要在程序中加入下列代码
desired_caps['chromeOptions'] = {'androidProcess': 'com.tencent.mm:tools'} # 驱动H5自动化关键之一
5.获取webview控件
在微信中通常会切换到其webview界面,开启第二步后,可以通过
chrome://inspect/#devices获取webview的控件。
6.在切换context过程中会牵扯到appium中chromedriver,这是appium中最麻烦的地方,
经常会在这里出错。
(1)切换进微信webview页面,操作完成后,进入第二个webview页面,但是不能操作第二个页面,
这是因为第一个chromedriver没有正常关闭,有两种该进方法:
1.在appium安装目录中搜索android.hybrid.js,打开后修改其代码为这样

该段代码的作用原本是如果存在旧的chromedriver就会使用旧的,不会新建一个chromedriver。
修改后,代码就变成每次都会重新生成一个新的chromedriver进程。
2.在上述1步骤操作完成后,还是不成功,需要在切换到weview界面操作完成返回native界面时,手动杀掉chromedriver进程
os.system('taskkill /im chromedriver.exe')
7.android 高版本appiu支持
高版本自动化需要appium 1.6.3及以上版本的支持,appium高版本并不是那么好下载,在网上试了很多种那个方法都不行,最后这种成功了,分享下我的经验:
npm config set registry http://registry.npm.taobao.org
npm install -g appium
下载完成后需要修改程序:
desired_caps['platformVersion'] = '7.0'
# desired_caps['automationName'] = 'UIAutomator2' 网上说需要切换,但是我下载的是1.7.2版本,使用了反而用不了了。
运行后出现\appium\node_modules\appium-uiautomator2-driver 的文件夹uiautomator2下面没有 2个必要的安卓apk文件:
在appium的安装目录下去安装这两个东西,命令如下:
npm install appium-uiautomator2-driver
运行成功,需要注意的是5037端口不能被占用。
8.appium运行超时时间设置
appium的运行超时时间是60s,60s无命令进入就会关闭程序,如果需要的等待时间超过60s,就要对appium进行设置,代码如下:
#设置超时时间
desired_caps['newCommandTimeout'] = '61'
.有些app进行自动化的时候无法获取webview的控件元素,使用chrome://inspect/#devices命令读取不到其webview界面,打印contexts也只有一个NATIVE_APP,解决方法如下:
下载TBS studio,运行程序,手机切换到要读取的app界面,点击调试,启动tbs调试,就完成了
9.获取手机输入法
adb shell ime list -s
9.webview问题求助
在抓取webview的过程中,跳转到一些webview深层次界面后,chrome显示的界面是黑色,没有控件显示,只显示框的大小,这个问题无法解决,求助
作者:纳兰寒明
链接:https://www.jianshu.com/p/95bf34d9c9b4
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
android appium微信等自动化的那些坑儿的更多相关文章
- py+appium微信公众号自动化(已搞定多个坑)
最近需要做微信公众号的自动化测试,遇到了不少坑. 微信公众号自动化与app自动化还是有区别的,因为多了不少坑.打开微信x5内核调试的就不说了,百度有. 1.首先,微信公众号有webview,uiaut ...
- Appium 微信 webview 的自动化技术
Appium 微信 webview 的自动化技术 最近好多人问微信webview自动化的事情, 碰巧我也在追微信webview的自动化和性能分析方法. 先发出来一点我的进展给大家参考下. 此方法用 ...
- AngularJS进阶(十七)在AngularJS应用中实现微信认证授权遇到的坑
在AngularJS应用中集成微信认证授权遇到的坑 注:请点击此处进行充电! 前言 项目开发过程中,移动端新近增加了一个功能"微信授权登录",由于自己不是负责移动端开发的,但最后他 ...
- 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理! 我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...
- 微信团队分享:Kotlin渐被认可,Android版微信的技术尝鲜之旅
本文由微信开发团队工程是由“oneliang”原创发表于WeMobileDev公众号,内容稍有改动. 1.引言 Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发( ...
- 手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理! 我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...
- Android版-微信APP支付
首发地址: Android版-微信APP支付 欢迎留言.转发 微信极速开发系列文章(微信支付.授权获取用户信息等):点击这里 目录 1.注册账号.开发者认证 2.添加应用 3.申请微信支付 4.技术开 ...
- Android中隐藏顶部状态栏的那些坑——Android开发之路3
Android中隐藏顶部状态栏的那些坑 先看看常规的隐藏状态栏的方法: 方法一: @Override protected void onCreate(Bundle savedInstanceState ...
- 我的微信小程序入门踩坑之旅
前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...
随机推荐
- matlab练习程序(图像投影到点云)
最近接触点云比较多,如果把图像投影到点云应该挺有意思. 首先需要载入图像,然后做个球或其他什么形状的点云,这里可以参考球坐标公式. 最后通过pcshow将像素输出到点云上即可. 原图: 投影后的点云: ...
- C语言程序设计100例之(12):Eratosthenes筛法求质数
例12 Eratosthenes筛法求质数 问题描述 Eratosthenes筛法的基本思想是:把某范围内的自然数从小到大依次排列好.宣布1不是质数,把它去掉:然后从余下的数中取出最小的数,宣布它 ...
- JVM GC系列 — GC算法
一.前言 从本篇文章开始,将开始一个新的系列JVM.JVM是一个非常庞大且复制的技术体系,但是对于程序猿的升级,走向更高阶所必要经历的,曾经也下决心要好好学习一番,然而毅力不足都中途放弃. GC的作用 ...
- MongoDB系列---集合与文档操作03
MongoDB-——Collection 学习大纲: 1.集合操作 2.文档操作 知识回顾: 上一篇我们讲述了如何对MongoDB的权限和用户进行日常的基本操作,来达到我们对数据库的基本安全保障. 一 ...
- 自从用python写了个自动弹幕脚本后,各大主播都来找我,净赚十万!
大家好,今天又给大家带来了Python爬虫的分享,今天我们继续上次的问题,继续来研究一下虎牙平台的爬虫. 起因 写完上次的代码,我冒出有一个很有趣的想法,就是,我们可以使用selenium来完成虎牙自 ...
- 面试官常问的Nginx的那几个问题?
什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代 ...
- Python 爬取大众点评 50 页数据,最好吃的成都火锅竟是它!
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 胡萝卜酱 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...
- jquery中的ajax请求到php(学生笔记)
首先ajax的基本语法基础.(必须得引入一个jquery文件,下面的例子展示用了网上的jquery文件,要联网.) 2.请求成功(复制代码运行观察效果) <!DOCTYPE html> & ...
- PHP通过session判断防止表单重复提交实例
PHP通过session判断防止表单重复提交实例,当用户提交表单后,为防止重复操作,通过session来判断是否为初次提交,否则让他返回到之前表单页面. 当前表单页面is_submit设为0 SESS ...
- 腾讯云游戏服务平台CMatrix品牌全新升级为GameMatrix
近日,隶属腾讯互娱公共研发运营体系(下文称CROS)下的云游戏服务平台CMatrix宣布进行品牌升级,启用全新商标Tencent GameMatrix,将原先代表云服务的“C”替换成游戏的英文单词“G ...