前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python+Appium 自动化测试避坑指南

Python+Appium 自动化测试避坑指南

作者头像
Wu_Candy
发布2022-07-05 14:22:26
6840
发布2022-07-05 14:22:26
举报
文章被收录于专栏:无量测试之道

一、环境搭建:环境变量不生效

1、首先,在系统变量里添加变量名为:ANDROID_HOME,值为:D:\android-sdk

2、然后,在系统变量里,在已有的Path变量的值里后面添加:D:\android-sdk\build-tools\22.0.1,记得在前面加上英文分号

3、最后,重启电脑,切记,如果环境变量配置好了,还在报关于变量未添加的错误,记得一定要重启电脑,都说:重启解百病啊,这里算是见识到了。

二、运行脚本:真机不断提示需要安装unlock,manager等插件且安装失败

1、在做手机自动化测试过程中,我们是完全没必要去安装这些插件的,想到的方法是跳过这些插件的安装,下面介绍下,我在遇到这种情况下的处理方式:

禁止手机每次启动需要安装unlock,manager等插件,在D:\Appium\node_modules\appium\lib\devices\android\android.js,注释4行代码,注释代码如下: //this.initUnicode.bind(this) //this.pushSettingsApp.bind(this) //this.pushUnlock.bind(this) //this.unlock.bind(this)

如截图所示:

2、再次运行脚本时,不会再提示需要安装这些插件了。

注意:如果修改上面的android.js文件后,保存了还是提示安装插件,这时应该重启appium服务器,然后重新运行脚本,避免修改的文件未及时生效。

三、运行脚本:报错Original error: Permission to start activity denied

解决方法如下: 在doc窗口中执行命令:aapt dump badging D:/Apk/app-v3.7.6_docker.apk(或者直接把apk拖进命令行)

使用这个命令获取package的值和launchable-activity的值

运行后的结果中以下两行分别是应用包名package和入口activity名称

package: name=’com.xxx.android.xx’

launchable-activity: name=’com.xxx.android.xx.view.xxxrActivity’

注:在android sdk目录搜索可以找到aapt.exe,或者当doc窗口提示:aapt不是内部或外部命令时请参看以下解决方法。

四、解决在doc窗口执行aapt命令时,提示:不是内部或外部命令方法: D:\android-sdk\build-tools\22.0.1将此添加到系统变量中的Path中,此目录下有aapt.exe,Path添加完成后需要重启doc窗口,再执行aapt命令,就可以完善的获取到:package和launchable-activity的值

五、对于手动启动APP时,没有引导页,脚本启动时有引导页

处理方法:

先用脚本启动到引导页后,一直休眠然后用sdk中自带工具uiautomatorviewer.bat来定位引导页面获取元素

六、退出登录按钮元素不在当屏的处理方法:

先滑动后再用坐标定位,代码如下:

代码语言:javascript
复制
x = self.driver.get_window_size()['width']
y = self.driver.get_window_size()['height']
代码语言:javascript
复制
self.driver.swipe(x / 2, y * 0.8, x / 2, y * 0.2, 200)
time.sleep(3)

os.popen("adb shell input tap " + str(659.0) + " " + str(1834.0))
self.driver.find_element_by_class_name("android.view.View").click()
os.popen("adb shell input tap " + str(945.0) + " " + str(1140.0))
self.driver.find_element_by_id("com.autochina.p2p:id/btn_dialog_action").click()
self.driver.quit()

首先:获取当前手机屏幕的宽和高

其次:在一定时间内按照相应的比例向上滑动

然后:使用定位工具定位到元素的坐标点

最后:根据获取到的元素的属性值,进行点击操作,弹框元素的获取同此法

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无量测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档