环境:python2.7、robotframework2.8.5、appium-server(1.22.3-4)、appium-inspect(Appium-Inspector-windows-2023.10.1)(Node.js、.net framework4.5、android-sdk)、夜神模拟器
文章目录
- 一 环境安装
- 二 验证环境搭建成功
- 三 定位元素
- 四 RobotFramework
- 五 遇到问题:
- 1. Android-sdk获取模拟器截屏失败:No Android devices were detected by adb
- `2. Android-sdk获取模拟器截屏失败: Unexpected error while obtaining UI hierarchyjava.lang.reflect.InvocationTargetException(未解决)`
- 3. Android-sdk获取模拟器截屏失败:Error while dump ui and xml,please check /data/local/tmp/LvmamaXmlKit.jar is exist: device offline Error while dump ui and xml,please check /data/local/tmp/LvmamaXmlKit.jar is exist: device offline
- 4. Android-sdk获取模拟器截屏失败:Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!
- 5. 导入"AppiumLibrary" 失败,报错ImportError: cannot import name InvalidArgumentException
- `6. charles抓包夜神模拟器:提示证书问题(未解决)`
- 7. 店店U惠小程序提示定位问题
- 8. 夜神模拟器助手中删除模拟器后无法添加相同版本模拟器
一 环境安装
准备安装包:
python2.7 (链接: https://pan.baidu.com/s/1TZPs-bkCvkABq5pers16ew 提取码: zrvf )
appium-python-client0.28 (链接: https://pan.baidu.com/s/109Al41WV50Wp8UAza7PIhg 提取码: sruj )
robotframework2.8.5(https://pypi.org/project/robotframework/2.8.5/#files)
robotframework-appiumlibrary1.6 (链接: https://pan.baidu.com/s/1n2hjsLmYk4gr8RQ1g2Ky4Q 提取码: nhxm )
Appium-Server-1.22.3-4.exe(链接: https://pan.baidu.com/s/19kxUE-xowL9z_d405u1RcQ 提取码: 31w9 )
Appium-Inspector 2023.10.1.exe(链接: https://pan.baidu.com/s/1tpSaE6uiRRxeE51_xvoRGw 提取码: ists )
Node.js:node-v4.4.7-x64(链接: https://pan.baidu.com/s/1YK0tw6UsLWBwMPY0AQQtzA 提取码: tawk )
.net framework4.5(链接:https://pan.baidu.com/s/1teb3AJ2TOWX-7b-pzGeo9Q 提取码:kh0j )
android-sdk_r24.3.4-windows(链接: https://pan.baidu.com/s/1XwwkNF8CRJTGNVM5jB40qw 提取码: jfk6 )
1.1 python环境
1)推荐版本:python-2.7.12.msi 相对稳定
网络下载路径:https://www.python.org/
2)设置操作系统的环境变量,在PATH最后加上:E:\python\Python27;E:\python\Python27\Scripts;
安装python测试库 appium-python-client:
pip install appium-python-client==0.28
(链接: https://pan.baidu.com/s/109Al41WV50Wp8UAza7PIhg 提取码: sruj )
离线下载安装包后解压安装,下载地址:https://pypi.org/project/robotframework-appiumlibrary/#files,选择版本时注意选择支持python2的版本,下载后解压至python/Lib/site-packages,cmd窗口进入对应解压目录,运行:python setup.py install即可。
1.2 robotframework环境
打开终端CMD,执行pip,安装RrobotFramework、Ride等
pip install robotframework==2.8.5
pip install robotframework-ride == 1.5.2.1
安装appium库 robotframework-appiumlibrary:
pip install robotframework-appiumlibrary
离线下载安装包后解压安装,下载地址:https://pypi.org/project/robotframework-appiumlibrary/#files,选择版本时注意选择支持python2的版本,下载后解压至python/Lib/site-packages,cmd窗口进入对应解压目录,运行:python setup.py install即可:https://pypi.org/project/robotframework-appiumlibrary/
1.3 appium环境
1.3.1 安装Node.js、.net framework、
1.3.2 安装android-sdk(下载地址:AndroidDevTools - Android SDK下载 )
1) 下载安装包:(网络不行使用百度网盘中的包也可)
2 )开始安装:
3)安装完成后,运行SDK Manager.exe
4)选择要安装的包
必须安装:
Tools/Android SDK Tools
Tools/Android SDK Platform-tools
Tools/Android SDK Build-tools
选择最新的Android版本安装(使用aapt 查看apk包名和launcherActivity)
Extras/Google USB Driver
Extras/Google Web Driver
5)点击Install packages等待安装完成即可
6)配置环境变量
在系统变量新建:ANDROID_HOME:E:\Android\android-sdk(sdk安装路径)
在path里面添加:%ANDROID_HOME%\tools、%ANDROID_HOME%\platform-tools、%ANDROID_HOME%\build-tools\29.0.3
7)验证:cmd中输入adb命令;
下载aapt,为了(查看apk包名和launcherActivity),之前已下载,省略此步骤,直接看安装appium。
如未安装最新版安卓,单独下载方法如下:
双击SDK-manager.exe ,下载buidl-tools 29.0.3的版本,在E:\Android\android-sdk\build-tools\29.0.3目录下找到aapt.exe,将这个路径设置环境变量,添加到path下(重启电脑)
1.3.3 安装Appium
1)安装Appium-server(Releases · appium/appium-desktop · GitHub)
2)安装appium-inspect(Releases · appium/appium-inspector)
以下2步可不执行,用于检查appium环境是否完善: |
---|
3)安装appium-server(只支持android6.0及以下版本),选择安装D盘 链接: https://pan.baidu.com/s/1zdPVRMZkIBRxprEqgGt2KA 提取码: 5c2t |
4)(可不执行,用于检查appium环境是否完善)配置appium-doctor,在安装完appium后,找到D:\Program Files (x86)\Appium\node_modules.bin 配置到path中,命令提示符中输入appium-doctor验证是否配置正确;![]() |
5)安装Appium-Python-Client(对webdriver原生api的一些扩展和封装)
在线安装:pip install Appium-Python-Client
如在线安装不成功,通过百度网盘下载 https://pan.baidu.com/s/109Al41WV50Wp8UAza7PIhg 提取码: sruj 解压后,找到setup.py,进入其所在目录,在命令行输入python setup.py install,完成库文件的安装。
1.3.4 java环境:JDK下载安装与环境变量配置图文教程【超详细】
1.4 安装模拟器(夜神模拟器-通过腾讯软件管理工具安装,不再赘述)
二 验证环境搭建成功
第一步:连接模拟器 进入命令提示符 adb connect 127.0.0.1:62001 (开启夜神模拟器并进行adb连接)
第二步:通过adb devices -l 得到deviceName
deviceName:127.0.0.1:62001
关闭模拟器后会显示offline
第三步:获取apk包名和apk的launcherActivity
方法一:aapt dump badging E:\Nox_share\Download\weixin8042android2460_arm64.apk
com.tencent.mm.ui.LauncherUI
appPackage=com.tencent.mm
appActivity=.ui.LauncherUI
方法二:使用adb命令来获取当前打开应用的包名:adb shell dumpsys window | findstr mCurrentFocus
com.tencent.mm/com.tencent.mm.app.WeChatSplashActivity
appActivity=.app.WeChatSplashActivity
方法三:adb shell “logcat|grep -i displayed.*.mm”
以上设置RF打开应用执行完后不关闭应用也会闪退
三 定位元素
在上一步连接好设备后我们可以打开sdk自带的素定位的工具,在…/sdk/tools/uiautomatorviewer.bat
点第二个按钮将手机同步到工具上进行元素定位
原文链接:https://blog.csdn.net/weixin_39430584/article/details/125888450
四 RobotFramework
4.1 导入appium库:AppiumLibrary
4.2 RobotFramework打开应用
URL:http://localhost:4723/wd/hub (appium-server地址)
运行打开应用脚本:
android-Open WeChat
Open Application ${REMOTE_URL} platformName=Android deviceName=127.0.0.1:62001 appPackage=com.tencent.mm appActivity=.ui.LauncherUI noReset=True
... platformVersion=7.1.2
4.2.1 运行脚本之前打开appium-server,点击startServer
4.2.2 运行夜神模拟器并执行RIDE,打开微信成功
执行成功后移动端桌面会添加Appium Settings 图标:
五 遇到问题:
1. Android-sdk获取模拟器截屏失败:No Android devices were detected by adb
解决方法:
关闭现有命令提示窗口(cmd窗口),重新进入命令提示符,输入adb devices,重新链接模拟器,uiautomatorviewer.bat重联
2. Android-sdk获取模拟器截屏失败: Unexpected error while obtaining UI hierarchyjava.lang.reflect.InvocationTargetException(未解决)
解决方法:uiautomatorviewer报错:Unexpected error while obtaining UI hierarchy java.lang.reflect.InvocationTarget (Android9和Android12尝试无效)
3. Android-sdk获取模拟器截屏失败:Error while dump ui and xml,please check /data/local/tmp/LvmamaXmlKit.jar is exist: device offline Error while dump ui and xml,please check /data/local/tmp/LvmamaXmlKit.jar is exist: device offline
解决方法:模拟器重启android 并 adb connect 重联;(adb没有多个时不用重联,会自动联接)
4. Android-sdk获取模拟器截屏失败:Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn’t exist!
解决方法:重启服务或联接
5. 导入"AppiumLibrary" 失败,报错ImportError: cannot import name InvalidArgumentException
解决方法:
在E:\Program Files\Python2.7.12\Lib\site-packages\selenium\common\exceptions.py找到exceptions.py文件,然后添加如下代码:
class InvalidArgumentException(WebDriverException):
"""
"""
pass
原文链接:https://www.jianshu.com/p/ab782f90bdf2?tdsourcetag=s_pcqq_aiomsg
6. charles抓包夜神模拟器:提示证书问题(未解决)
网上找的方法未解决问题,只能点击弹窗“继续”,直至不弹(只要有图片就会弹,几张图片弹几次)
解决方法:夜神模拟器通过charles抓包的全过程 (未解决)
openssl x509 -subject_hash_old -in E:\Nox_share\Download\Desktop.pem
openssl x509 -inform PEM -subject_hash_old -in E:\Nox_share\Download\Desktop.pem
7. 店店U惠小程序提示定位问题
解决方法:无法彻底解决,点击“我已打开”没用,只能通过点击“返回”键关闭弹窗
8. 夜神模拟器助手中删除模拟器后无法添加相同版本模拟器
解决方法:进入安装目录data中删除对应的版本:如12 删除base12文件夹后添加模拟器成功