使用appium进行安卓手机native+H5混合模式自动化踩过的坑

公司app使用的开发模式是native(原生)+H5(webview)模式

  1. 启动页别搞错了
    ——所见即所得,但是所见非所想得;一定要找开发确认,app的启动页是否是MainActivity页面,如果不是,赶快改!
    ==================================
  2. webview元素定位(网上提供最多的方法是使用chrome的inspect定位,但是要FQ什么鬼的,放弃吧)
    以下是两种可用的方法:
    ①使用华为手机的TalkBack功能,然后结合手动截屏
    android8.1以后sdk tools自带的uiautomator直接打开,截取不到机器界面信息
    那么只能手动获取了:
    a.截取uix资源文件
    adb shell uiautomator dump /sdcard/screen.uix
    adb pull /sdcard/screen.uix
    注明:新手机地址改成:/data/local/tmp/**.uix
    b.截取截图
    adb shell screencap -p /sdcard/screen.png
    adb pull /sdcard/screen.png
    参考:
    https://tieba.baidu.com/p/4540154719
    https://blog.csdn.net/zhushixia1989/article/details/104588453/
    https://testerhome.com/topics/9210

    ②手机+电脑浏览器H5页面查看元素的方式
    推荐ChroPath工具和chrome的右键copy xpath的功能 在这里插入图片描述

===============================
3. 切换context失败,driver.switch_to.context(),系统报:[WD Proxy] Got response with status 500: {“value”:{“error”:“session not created”,“message”:“session not created: This version of ChromeDriver only supports Chrome version 81”
——将手机/模拟器连到电脑上,通过chrome浏览器的chrome://inspect/#devices,查看对应页面webview的版本,然后去https://npm.taobao.org/mirrors/chromedriver/上下载对应版本的chromedriver,放到appium的驱动目录(我的是:C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win)重启appium即可

注意:
appium版本和webview的版本一定要一致!
appium版本和webview的版本一定要一致!
appium版本和webview的版本一定要一致!
另外,
1、运行的时候可能会被手机里安装的chrome浏览器的chromedriver干扰,这个需要注意!
2、webview的版本和手机内置浏览器的不是一回事儿,我们需要看的是应用页面的webview版本,而非系统内置:
查看Android手机的内置webview版本:
adb shell am start -a android.intent.action.VIEW -d https://liulanmi.com/labs/core.html

以下是两个应用的webview的版本
在这里插入图片描述

===================================
4. 使用夜神模拟器,报“adb server version (36) doesn’t match this client (39)”
——原因:当前夜神模拟器的adb版本是36,android-sdk里面的adb版本是39,不匹配导致的
解决办法:把android-sdk里面的adb.exe版本复制出来,然后改个名称叫nox_adb.exe,替换nox安装的路径:\Nox\bin下的nox_adb.exe文件,重启模拟器即可
5.
7.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值