最近在真机上用appium的时候,一直都被权限提示所困扰,作为自动化,能不能通过代码的方式来解决每次都要手动点击授权的麻烦呢?度娘上求索很久,提供了很多方式,依然不靠谱!
提示截图如下:
每次启动都会出现两次这种提醒,第一次是appium settings安装,另一种是unlock的安装。
在这个提示出现后,尝试通过切换焦点的方式来解决:driver.switch_to.alert.accpet() 事实证明一切都只是美好的愿望而已,然并卵!
既然切换焦点不行,我们能不能来定位提示上的按钮解决问题呢? ‘’允许‘’和‘’拒绝‘’明明是两个按钮,使用UIautomatorviewer来查看下
通过上图可以看到,工具也无法得到这个东西,那么通过定位来解决的方式路断了!
目前,网上淘来的方法只剩一种了,修改appium的js源码,因为深究其原因,我们可以发现每次启动程序的时候,appium在手机安装Appiumsettings和unlock这两个app,而实际上手机上在第一次使用appium的时候已经安装好了。而且,为了不再提示,手机权限设置里已经允许,如图:
已经在手机设置权限的情况下依然出现权限问题,那么肯定就是每次安装的问题了,有没有办法不让其安装呢? 在C:\Program Files\Appium\node_modules\appium\lib\devices\android路径下:
打开android.js,找到appiumsettings和unlock安装的代码:
注释掉它,//this.pushSettingApp.bind(this), //this.pushUnlock.bind(this),
问题解决了,当然这个解决方法太暴力,如果是第一次运行appium,注释掉以后这两个APP就应该不会安装,会出问题。请注意!
希望大家都能够成功!