Appium基础篇4-如何解决每次运行脚本都安装apk的问题

  前面一篇,我们介绍了第一个appium自动化测试脚本,已经学会了,如何安装一个apk包并启动它。那么,如果你把前面一篇的脚本运行多次,你就会发现,我们运行一次脚本都会执行安装一次包的过程。其实在安装之前,appium自动把你安装过得手机百度给卸载,然后再次安装。怎么知道它再次安装了呢,如果你运行一次,启动之后,还需要你手点击同意各种权限申请弹窗,说明这个包已经被重新安装过一次。那么问题就来了,有没有办法,不让它继续安装,毕竟第一次我们已经成功安装了,接下来,我们需要做其他事情,例如找元素,点击或者输入。

代码解决办法

       我们通过代码传入参数,让noReset设置True。其实在早期appium软件界面是有这个noReset的选择项,当前我的V1.6.5,界面设置上已经没有了这个选项,目前只能通过代码来设置,具体代码如下。

[java]  view plain  copy
  1. import os  
  2. from appium import webdriver  
  3.   
  4. apk_path = os.path.abspath(os.path.join(os.path.dirname(__file__),"..")) #获取当前项目的根路径  
  5.   
  6. desired_caps ={}  
  7. desired_caps['platformName'] = 'Android' #设备系统  
  8. desired_caps['platformVersion'] = '6.0.1' #设备系统版本  
  9. desired_caps['deviceName'] = 'KIW-AL10' #设备名称  
  10. # 测试apk包的路径  
  11. desired_caps['app'] = apk_path + '\\app\\shoujibaidu.apk'  
  12. # 不需要每次都安装apk  
  13. desired_caps['noReset'] = True  
  14. # 应用程序的包名  
  15. desired_caps['appPackage'] = 'com.baidu.searchbox'  
  16. desired_caps['appActivity'] = 'com.baidu.searchbox.SplashActivity'  
  17. #如果设置的是app包的路径,则不需要配appPackage和appActivity,同理反之  
  18.   
  19. driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)#启动app  

       运行一下,果然没有再次卸载和安装手机百度应用。注意,这里没有再次执行安装,所以,是根据appPackage和appActivity两个参数来定位手机中的应用,找到后并打开这个应用。下一篇,介绍如何定位元素,所有的自动化都是基于元素操作的,所以我们需要掌握先如何定位安卓app中的页面元素对象,先学元素定位,然后再学元素操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值