`
fantaxy025025
  • 浏览: 1278688 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

android appium微信等自动化的那些坑儿

 
阅读更多

=

=

=

作者:纳兰寒明
链接:https://www.jianshu.com/p/95bf34d9c9b4
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

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,打开后修改其代码为这样
 
1.png

该段代码的作用原本是如果存在旧的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显示的界面是黑色,没有控件显示,只显示框的大小,这个问题无法解决,求助

 

=

=

=

 

分享到:
评论

相关推荐

    Python-基于Appium的微信小程序自动化测试方案

    本文将深入探讨如何使用Python的Appium库进行微信小程序的自动化测试。微信小程序作为一种轻量级的应用形式,其测试需求同样不容忽视。通过自动化测试,我们可以确保小程序在不同环境下的稳定性和性能。 Appium是一...

    基于python+appium的android微信自动添加好友及爬取其朋友圈的爬虫.zip

    标题中的“基于python+appium的android微信自动添加好友及爬取其朋友圈的爬虫”表明这个项目使用Python编程语言,结合Appium自动化测试框架,实现了对Android版微信的自动化操作,包括自动添加好友和爬取朋友圈内容...

    全网最全Appium自动化测试教程,一篇就够了

    全网最全Appium自动化测试教程,一篇就够了 Appium是开源的、跨平台的测试自动化测试框架; 主要用于测试移动端应用; Appium支持模拟器和真机上的原生应用、混合应用、Web应用; Appium使用WebDriver的JSON wire...

    appium+android自动化测试源码

    本资源“appium+android自动化测试源码”提供了一个基于Appium进行Android应用自动化测试的实际示例,适用于那些想要了解或实践Appium与Android自动化测试的开发者。 【描述】:“这是一个安卓基于appium自动化测试...

    基于python+appium的android微信自动添加好友及爬取其朋友圈的爬虫+源代码+文档说明

    基于python+appium的android微信自动添加好友及爬取其朋友圈的爬虫 使用方法: 1.安装android SDK,并在环境变量中添加ANDROID_HOME变量,变量地址为SDK的地址 2.安装appium 3.android手机通过usb接口连接电脑,打开...

    微信小程序appium启动实例方法

    微信小程序启动方法,传入小程序的名字,启动微信,下拉,找到对应小程序,点击,即可启动。使用appium框架,java语言编写,仅应用于android的小程序自动化启动

    Appium+python自动化之连接模拟器并启动淘宝APP(超详解)

    Appium 是一个开源的自动化测试框架,它可以用于安卓(Android)和iOS应用的自动化测试。它支持多种编程语言,Python 是其中之一,因此我们可以用 Python 来编写测试脚本。在本文中,我们将详细介绍如何使用 Appium ...

    ls6_appium_ex01:第六阶段appium微信企业实战1

    【标题】"ls6_appium_ex01:第六阶段appium微信企业实战1"是一个针对自动化测试的学习资源,尤其关注于使用Appium进行微信应用程序的企业级实战应用。这个标题表明了学习者将深入掌握如何利用Python编程语言和Appium...

    微信自动打招呼

    在IT行业中,微信自动打招呼是一种常见的自动化测试场景,尤其对于那些需要进行大量微信交互的应用或服务,例如微信营销工具或聊天机器人。这个话题涉及到的主要知识点包括微信API的使用、自动化测试框架的应用以及...

    Appium手机自动化解决方案(狂沙)

    Appium手机自动化解决方案(狂沙) 本人是一个IT开发爱好者,从事Android的开发工作。热爱学习新技术。 * 若您也有共同的兴趣爱好,欢迎你加入QQ技术群让我们共同发现新技术。 【GitHub】...

    微信自动加好友和自动安装

    在Android上,可能还会用到Java或Kotlin,配合Appium或Espresso等自动化测试框架。 8. **安全与隐私**: 自动化的微信操作必须遵守微信的使用条款和服务协议,因为滥用自动化工具可能导致账号被封禁。此外,用户...

    微信自动抢红包

    微信自动抢红包是一种在微信平台上实现的技术,它利用自动化脚本或应用来帮助用户自动接收并领取微信红包。在这个场景中,我们关注的是在Android系统上实现这一功能,因为描述中提到了“华为畅享7”手机和“android...

    appium自动化测试框架

    ### Appium自动化测试框架知识点详解 #### 一、Appium架构及环境安装 **1.1 Appium架构介绍** Appium作为一个开源的自动化测试工具,主要用于原生应用、移动网页应用以及混合应用的自动化测试。这里对这三种类型...

    python+appium自动化工程

    Appium是一个开源的自动化测试框架,它允许开发者使用多种编程语言(如Python)来编写测试脚本,对Android和iOS平台的应用进行自动化测试。本工程是基于Python的Appium自动化测试项目,名为"appiumn_auto-master",...

    wechat-:微信自动化1

    微信-微信自动化1

    微信自动摇一摇

    2. **自动化测试工具**:如Appium、UiAutomator等,这些工具通常用于移动应用的自动化测试,但也可以被用来编写自动化脚本,模拟用户在手机上的操作,包括摇动手机的动作。 3. **Android与iOS系统权限**:在实现...

    Python 3网络爬虫开发项目实战_Appium爬取微信朋友圈_编程案例解析实例课程教程.pdf

    Appium是一个强大的自动化测试工具,允许我们模拟应用程序的操作并获取可视化的屏幕内容,这对于爬取那些加密或者难以通过常规网络请求抓取的数据非常有用。在这个特定的案例中,我们的目标是抓取Android平台上微信...

Global site tag (gtag.js) - Google Analytics