hybrid应用自动化
一.hybrid介绍
hybrid是一种混合app,将h5页面嵌入native原生页面。
基于uiautomator+chromedriver。native部分走uiautomator,web部分走chrome,两者结合混搭,从而实现hybrid自动化
二.配置步骤
1.在app源码中打开webview调试模式(如果没有打开,uc开发者工具无法识别到app的web页面)
webview.setWebContentsDebuggingEnabled(true); //需要开发帮忙打开
2.手机连接电脑
(1)用usb线将手机连接电脑
(2)开发者模式
在手机设置-关于手机-版本号,点击5下后手机处于开发者模式(部分手机需要输入手机密码才能打开开发者选项

(3)进入开发者选项后打开usb调试-确定

(4)选择usb配置

(5)电脑dos命令行输入adbdevices检测设备是否连接成功

注意:不同的手机型号开发人员选项所在的位置可能会有所不同
3.native部分
通过appium来进行定位:用appium定位元素
(1)主机IP为127.0.0.1,再启动服务器

(2)点击启动检查器会话
(3)所需功能配置:
package和Activity获取:aapt dump badging D:\rubish\apk\bilibili.apk



(4)点击开启会话
在手机安装app,并且app打开的情况下,点击开启会话,开始抓取app页面元素
4.web/h5部分
(1)uc开发者工具
安装uc开发者工具,
手机打开开发者模式连接电脑,
打开要测试的hybrid app,进入h5页面,
打开安装好的开发者工具,如图:


(2)chrome驱动
下载对应版本的chrome驱动:https://npm.taobao.org/mirrors/chromedriver
对应版本:根据uc开发者工具的展示的手机webview版本,找到和手机webview最近的chromedriver版本下载
替换appium自带的chromedriver.exe
chromedriver.exe地址:\resources\app\node_modules\appium\node_modules\appium_chromedriver\chromedriver\win
三.脚本编写步骤
1.自动化前置代码
//打开app,和appium中设置的所需功能配置一样
DesiredCapabilities desiredCapabilities=new DesiredCapabilities();
desiredCapabilities.setCapability("platformName", "Android");
desiredCapabilities.setCapability("platfomVersion", "10");
desiredCapabilities.setCapability("deviceName", "HUAWEI P40");
desiredCapabilities.setCapability("appPackage", "com.lemon.lemonban");
desiredCapabilities.setCapability("appActivity", "com.lemon.lemonban.activity.WelcomeActivity");
desiredCapabilities.setCapability("ensureWebviewsHavePages", true);
desiredCapabilities.setCapability("noReset", true); //不清除数据
URL remoteurl=new URL("http://localhost:4723/wd/hub"); //appium的服务地址:来自appium的检查器
driver=new AndroidDriver(remoteurl,desiredCapabilities);
2.先点击进入webview视图,但是并未切换到contexts;
driver.findElement(MobileBy.AndroidUIAutomator("new UiSelector().text(\"柠檬社区\")")).click();
3.再获取到所有的contexts
System.out.println(driver.getContextHandles());
4.切换到webview试图
driver.context("webview视图");
5.元素定位和执行操作
driver.findElement(By.xpath("//a[@class=\"index-bottom__item\"][3]")).click();
6.切换回native视图
driver.context("native视图");
hybrid应用自动化的更多相关文章
- Android Hybrid App自动化测试实战讲解(基于python)
1.Hybrid App自动化测试概要 什么是Hybrid App? Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具“Native App ...
- H5混合应用之上下文切换
一.native/web/hybrid 简介 目前主流应用程序大体分为:Native App(原生应用).Web App(网页应用).Hybrid App(混合应用),它们三者的优缺点比较如下表: 应 ...
- APP自动化之Hybrid自动化解决方案(七)
基于UIAutomator+ChromeDriver模式(UIAutomator安卓原生引擎) 原理:native(原生)部分使用UIAutomator,webview部分使用ChromeDriver ...
- 进击的Hybrid App,量身定做缓存机制
引用张图,简单粗俗的解释下 Native App.Web App 和 Hybrid App Navtie App: 使用平台系统提供的原生语言来编写的 App,如果Android用java,ios用o ...
- Appnium移动自动化框架初探
作者:cryanimal QQ:164166060 本文简要介绍了appnium自动化框架的架构.加载流程.支持语言.相关配置,以及元素定位工具等. 官方网站: http://appium.io Ap ...
- 前端工作流程自动化——Grunt/Gulp 自动化
什么是自动化 先来说说为什么要自动化.凡是要考虑到自动化时,你所做的工作必然是存在很多重复乏味的劳作,很有必要通过程序来完成这些任务.这样一来就可以解放生产力,将更多的精力和时间投入到更多有意义的事情 ...
- 移动端混合型App(hybrid app)自动化测试选型与实践
背景 公司产品的业务已经发展到了移动端,开发选型已经结束,决定使用phonegap做移动端的web应用开发平台.考虑到业务的复杂与多样,移动端的测试同样需要自动化.在网上看了很多,最终锁定了3个移动端 ...
- 【腾讯优测干货分享】微信小程序之自动化亲密接触
本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/HcPakz5CV1SHnu-U8n85pw 导语 山雨欲来风满楼,最 ...
- Appium移动自动化框架初探
作者:cryanimal QQ:164166060 本文简要介绍了appnium自动化框架的架构.加载流程.支持语言.相关配置,以及元素定位工具等. 官方网站: http://appium.io Ap ...
- app自动化问题点整理
1.配置SDK环境发现adb无法生效: 解决方案: 这个问题一般就是你的环境变量没有配置好,很多同学比较容易出现的点就是win10系统的环境变量配置: 一定要注意打开path添加:%ANDROID_H ...
随机推荐
- linux下自建NAS教程
NAS,英文全名Network Attached Storage,翻译过来是:网络附接存储. 引用维基百科定义 网络附接存储(英语:Network Attached Storage,缩写:NAS)[1 ...
- 独“数”一帜 双证加冕!TeleDB亮相可信数据库发展大会
近日,2024可信数据库发展大会在北京召开,主题为"自主.创新.引领".大会重磅发布多项中国信通院及中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)在数据库领域最 ...
- 看图识WAF
看图识WAF 宝塔 腾讯云T-Sec 阿里云盾 创宇盾
- Calcite 获取jdbc连接流程
一.类调用 简介:calcite可以连接各数据源,做查询.可以收口查询权限,查询多引擎需求 二. 获取Connection发送的请求 请求介绍文档:https://calcite.apache.org ...
- Atcoder ABC383E Sum of Max Matching 题解 [ 绿 ] [ 最小瓶颈路 ] [ 并查集 ] [ Kruskal 重构树 ]
Sum of Max Matching:简单贪心,但我场上没切,唐完了. 思路 显然,对于最大边权最小问题,首先想到最小瓶颈路的 trick:按边的大小排序,对原图进行加边. 同时可以发现,这个匹配有 ...
- 【ABP】项目示例(1)——项目搭建前置准备
项目介绍 本项目使用.NET8+ABP+MySql搭建,基于DDD的设计思想,创建分层Web应用程序. 相关文档 .NET开发文档 Entity Framework Core开发文档 ABP开发文档 ...
- 牛客题解 | 单组_spj判断数组之和
题目 题目链接 解题思路 后台有spj代码,能对同学们的输出数据进行校验,符合条件即可通过. 附赠 spj 代码 #include <iostream> #include <fstr ...
- [NOI2014] 购票 题解
首先发现 \(p_x\times dis(x,y)+q_x\) 异常像是能斜率优化的样子,那先把求 \(f_x\) 的式子写出来(下设 \(d_x\) 表示 \(x\) 到根的距离): \[f_x=\ ...
- 关于选择最佳.NET Core SSH服务器库的全面分析
关于选择最佳.NET Core SSH服务器库的全面分析 在安全远程访问领域,SSH(安全外壳协议)服务器对于在潜在不安全的网络上实现客户端与服务器之间的安全通信至关重要.对于使用.NET Core的 ...
- 使用Visual Studio 调式NDK so 库时,调试工具无法显示vector内容
最近在研究C++开发安卓端so库,demo使用xamarin.android作为载体来验证算法库文件的准确性.调试过程中发现vector中的内容无法显示集合详细.如下图 研究了半天(参考链接2.3), ...