appium初始化driver时,如果未安装该app会先进行安装,安装时,很多安卓手机都会弹框,需要手动确认安装。

如小米的机器,

这是个头疼的问题,之前在网上找遍了,只有通过adb去点相对坐标成功了,但是依然觉得不完美。一来没法判断是否有弹框,再者就算通过坐标比例去点,也没法保证所有系统的安装按钮都在那个相对位置。

后来突发奇想,想到一个好办法,讲下原理:

要运行appium的手机,一般至少会安装3个app,分别是输入法、Appium Settings、unlock。

既然要运行appium自动化测试的安卓机,都需要安装好这3个应用,那为什么不利用这3个应用!反正包名和activity都一样!

所以,解决方案是:

先初始化Appium Settings这个app,只要driver初始化完成了,我们就可以利用appium去查找元素并点击确认安装的按钮了!

等待测应用安装成功后,再初始化待测应用就可以了!

处理逻辑:

初始化Appium Settings->根据apk文件获取到包名->判断是否安装app->如果安装先卸载->使用adb安装app->查找确认安装按钮并点击->等待x秒,检查是否安装成功->如果失败再重试几次

-> 初始化待测app

源码:

https://download.csdn.net/download/xxiong1031/10396441

【独家】完美解决appium安装app时,需要手动确认安装的问题的更多相关文章

  1. win7 Visual Studio 2008 安装程序时出现“ 加载安装组件时遇到问题。取消安装。”处理方法

    win7 Visual Studio 2008 安装程序时出现“ 加载安装组件时遇到问题.取消安装.”处理方法 vs2008试用期到期,卸载.重新安装都会出现“ 加载安装组件时遇到问题.取消安装.”无 ...

  2. C#的Installer生成的msi的安装文件,安装新版本时提示:已经安装了该产品的另一个版本。无法继续安装此版本

    之前折腾了个C#的项目: WLW (Windows Live Writer) Plugin–InsertSkydriveFiles 然后又弄了个对应的Installer: [已解决]给一个C#的Dll ...

  3. yum命令安装软件时,出现--centos 7 安装apache 出现 Could not resolve host: mirrorlist.centos.org; 未知的错误"--CentOS网络设置 couldn't resolve host 'mirrorlist.centos.org问题解决

    CentOS网络设置 couldn't resolve host 'mirrorlist.centos.org问题解决 今天在虚拟机上安装完CentOS6.5之后,首次使用时yum命令安装软件时,出现 ...

  4. 安装系统时出现“windows无法安装到这个磁盘。选中的的磁盘采用GPT分区形式”

    安装系统到提示你不能安装在那个磁盘的一步,然后按住shift+F10呼出diskpart命令符,然后依次输入 diskpart list disk select disk 0 clean conver ...

  5. 解决msi文件在XP上安装未完成(提示安装程序被中断,未能安装app。需要重新启动该安装程序进行重试)的问题。

    如图所示,我利用Visual Studio 2015制作了一个小程序.基于.Net 4.0.用VS的Install扩展,新建Install项目进行打包.打包为.msi文件.该安装文件在已经安装了 .N ...

  6. 按照教程自动安装RFNoC时.在使用pip安装pybombs时出现报错,解决办法

    $ sudo apt-get install git $ sudo apt-get install python-setuptools python-dev python-pip build-esse ...

  7. appium启动APP时避免重新安装的问题

    from appium import webdriverfrom time import sleepimport os #获取apk的绝对路径desired_cups = {}#设备平台desired ...

  8. [置顶] 完美解决Android Studio 运行时出现的警告信息?

    今天群友看到他说运行的时候报下面的错,我记得我之前导入百度地图也是遇到过,运行的时候一堆警告信息,然后编译失败等的,特别郁闷,其实后来在网上查了下,原来是很多第三方里面加个混淆,然后你有找不到那些方法 ...

  9. 当我们在安装tensorflow时,我们在安装什么?- Intro to TF, Virtualenv, Docker, CUDA, cuDNN, NCCL, Bazel

    (Mainly quoted from its official website) Summary: 1. TensorFlow™ is an open source software library ...

随机推荐

  1. JAVA解压文件

    package com.chauvet.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...

  2. 一篇文章入门Jmeter性能测试【经典长文】

    孟船长  目录 1.性能测试定义2.为什么要做性能测试3.性能测试指标.性能测试分类4.Jmeter性能测试实战[入门级]5.参考文章链接 1.性能测试定义 百度&知乎 性能测试是通过自动化的 ...

  3. js 时间操作积累

    console.log( new Date() ); //Tue Mar 20 2018 22:47:01 GMT+0800 (中国标准时间) // var date = new Date( '201 ...

  4. leetcode:Same Tree【Python版】

    1.p或q为None的情况用开始的两个if语句进行判断: 2.类中递归调用函数需要使用self进行调用: 3.代码很简洁,最后几行通过同时为None和同时非None的条件进行判断: # Definit ...

  5. k8s helm 可视化UI 管理工具 monocular部署试用

    官方建议是用 helm 进行安装,但是helm 有点费事(各种原因...) 所以使用官方说的使用docker-compose 但是默认官方的compose 跑起来 还是真费事,经过调整,修改了一版支持 ...

  6. servlet / jsp(一)

    2016-03-25 11:34:14 一.实现一个简单的servlet程序 Servlet是在服务器端运行的小程序,这是一个很广泛的概念,并没有说是在web服务器端运行的小程序,除了在web服务器上 ...

  7. SQLServer2008开启远程连接

    1.查看sqlserver brower协议是否启动 2.对象资源管理器 右键属性->选择-> 方面->服务器配置->Remoteaccess ->True 3.对象资源 ...

  8. bzoj3157 3516 国王奇遇记

    Description Input 共一行包括两个正整数N和M. Output 共一行为所求表达式的值对10^9+7取模的值. 特判m=1 m≠1时: 设S[u]=sigma(i^u*m^i) m*S ...

  9. python selenium-8 Page Object模式

    封装空间操作为一个接口使用,而不是直接在页面中查找 from selenium import webdriver from selenium.webdriver.common.by import By ...

  10. WAP网站WML或HTML页面自适应手机屏幕实现方法

     把图片和div的宽度都设置成:width:100%就可以了