appium使用过程碰到的问题(一)
2018-03-19 11:01
274 查看
1. UI自动化,涉及到权限(包括不限于:首次打开提醒GPS定位、获取联系人等信息;扫一扫的视频权限,录制的声音权限等)如何处理?
2. 真机如何获取deviceName?
3. 真机如何获取页面其他信息?
4. 什么是aapt, 他的作用是什么?
5. appium控制事件跳转到新的页面,如何处理后续操作?
6. appium的api文档地址
[b]7. 真机使用appium-desktop时,总是提示安装appium settings与Unlock
8. APP每次打开都清除了用户数据,出现首次弹框提醒
9. appium安装app报错:Failure [INSTALL_FAILED_UNKNOWN_SOURCES] at Object.wrappedLogger.errorAndThrow
10. 通过传入apk路径,自动安装app并执行appium。如何设置易安装后不再次安装?
11. demo脚本,通过find_element_by_name定位元素,在appium server执行成功,在appium desktop执行失败,报错元素定位不存在。
12. demo脚本,在锤子手机执行成功,在小米手机执行失败。报错场景:启动页滑动脚本报错selenium.common.exceptions.WebdriverException:Message:An unknown server-side error occurred while processing the command。
98a8
答: iOS:desirede_capabilities 设置 autoAcceptAlerts = true android: https://testerhome.com/topics/3800 权限问题等,尽量能够在脚本执行前设置完成。
2. 真机如何获取deviceName?
答:单个设备时,通过adb devices来获取devices; 多个设备时,需要指定uuid来识别机器。 以下是python使用正则匹配设备: ``` # 读取设备信息 # os.popen 方法用于从一个命令打开一个管道 readDeviceId = list(os.popen('adb devices').readlines()) # 正则表达式匹配出 id 信息 deviceId = re.findall(r'^\w*\b', readDeviceId[1])[0] ```
3. 真机如何获取页面其他信息?
答: 方法一:通过adb工具命令查看: ``` adb shell logcat | grep cmp= I/ActivityManager( 4047): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.smartisanos.notes/.NotesActivit y (has extras)} from uid 10012 on display 0 ``` appPackage : com.smartisanos.notes appActivity : .NotesActivit 方法二: aapt dump badging +客户端包所在路径+客户端包名称.apk 这个看你有没有aapt.exe,这个很直观,你也可以执行命令时输出成log来看,有apk的推荐这种。反编译查看xml应该用的也是这种方法。 ``` C:\Users\lei>D:\develop\Android\android-sdk-windows\build-tools\27.0.3\aapt.exe dump badging D:\Downloads\Android_SIT_235_44247.apk package: name='com.zxjt.jjt' versionCode='3' versionName='1.0.2' platformBuildVe rsionName='7.1.1' sdkVersion:'16' maxSdkVersion:'26' targetSdkVersion:'25' launchable-activity: name='com.thinkive.android.invest_app.ui.activities.Launche rActivity' label='' icon='' ```
4. 什么是aapt, 他的作用是什么?
答:Android Asset Packaging Tool,是Android资源打包工具,SDK目录中自带。它的位置:sdk\build-tools\android-4.3\aapt.exe。如果需要全局使用这个命令,需要把这个路径添加到path变量中,否则就只能在这个目录下使用。 主要作用就是可以查看apk文件中的相关信息,和编译
5. appium控制事件跳转到新的页面,如何处理后续操作?
答:通过识别下一页的元素是否存在,判断是否跳转成功。可以通过try处理。
6. appium的api文档地址
答:appium内部使用的是webdriver,需要熟悉webdriver即selenium API。 可以通过命令启动本地python的帮助文档模式,访问 'http://localhost:4567/' 查看api: ``` C:\Users\lei>python -m pydoc -p 4567 Server ready at http://localhost:4567/ Server commands: rowser, [q]uit server> ```
[b]7. 真机使用appium-desktop时,总是提示安装appium settings与Unlock
答:修改appium的本地js文件。进入安装目录C:\Users\lei\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-android-driver\lib - 找到android-helpers.js
8. APP每次打开都清除了用户数据,出现首次弹框提醒
答:增加设置:desired_caps['noReset'] = True
9. appium安装app报错:Failure [INSTALL_FAILED_UNKNOWN_SOURCES] at Object.wrappedLogger.errorAndThrow
答:需要开启手机权限。安全中心》高级设置》应用程序安装来源管理》未知来源(勾上)
10. 通过传入apk路径,自动安装app并执行appium。如何设置易安装后不再次安装?
答:我们通过代码传入参数,让noReset设置True。注意,这里没有再次执行安装,所以,是根据appPackage和appActivity两个参数来定位手机中的应用,找到后并打开这个应用。 ``` desired_caps['noReset'] = True ```
11. demo脚本,通过find_element_by_name定位元素,在appium server执行成功,在appium desktop执行失败,报错元素定位不存在。
答:appium在一定版本后,find_element_by_name函数已经失效不用,需要修改为find_element_by_android_uiautomator函数。
12. demo脚本,在锤子手机执行成功,在小米手机执行失败。报错场景:启动页滑动脚本报错selenium.common.exceptions.WebdriverException:Message:An unknown server-side error occurred while processing the command。
答:启动页加载时间过长,滑动操作执行时没有找到页面元素,需要增加等待时间。
98a8
相关文章推荐
- CSP编程基础--CryptAPI使用过程中碰到的问题
- VS2010 使用过程中碰到的一个DLL导入失败的问题
- 数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……
- RVM的安装和使用过程中碰到的问题
- mysql使用过程中碰到的问题
- 总结svn使用过程中可能会碰到的问题
- Loadrunner使用过程中碰到的问题
- 使用CMAKE过程中碰到的栈溢出问题总结
- ffmpeg 音频视频 使用过程中碰到的问题记录
- ServiceStack.Redis 使用过程中碰到的两个问题
- Aurora一些使用过程中碰到的问题
- AndroidStudio使用过程中碰到的问题
- 全程记录:今天尝试安装SharePoint Server 2007过程 ,安装成功了,但是开始使用碰到权限问题,应该算是BUg吧
- 记录一下使用百度Ueditor副编辑器的过程及碰到的问题
- selenium RC 使用过程中碰到的小问题
- CSP编程基础--CryptAPI使用过程中碰到的问题
- 使用CMAKE过程中碰到的栈溢出问题总结
- Android Studio使用过程中碰到问题及解决方案整理
- InstallShield 工程类型MSI 使用过程中碰到的问题及解决方法。
- CSP编程基础--CryptAPI使用过程中碰到的问题