在使用appium进行安卓端app的自动化测试,我碰到这样下面这几个问题:

1、每次启动我的待测app时总会提示app权限

2、关闭完权限后,无法识别页面对象

第一个问题的解决,我更换不同的真机进行测试,弹框元素不一样,我写了一个类,专门来识别这些不一样的弹框,其中碰到一个问题,就是针对小米6手机进行真机测试的时候,

webdriver的click()无效,为了解决这个问题我增加了一种手机模拟点击操作(通过adb命令点击),解决了小米6手机上app权限弹框的关闭。

可是解决了上一个问题后就遇到了第二个问题,窗口关闭后不能识别页面对象。

这个问题困扰了我差不多2天时间,最后我改了几个地方完美解决:

1、把automationName改为UiAutomator2,改完需要重启appium才生效。

UiAutomator2说明参考链接:https://www.jianshu.com/p/d8457a06c7b7

2、改完第一个后,出现了通过byname属性无法识别对象的问题。

尝试百更改appium的driver.js下的一个属性增加name也不能解决这个问题。然后找了很久发现,最新版本的appium提供的xpath完美替换通过byname属性查找问题。

参考链接:https://www.jianshu.com/p/6d71624cb5bb

做了上面的更改后还是不能很好的识别,为了增强我在查找元素的时候都做了一个切换到当前窗口的操作,后面就都正常识别了。

解决关闭app权限弹框后无法识别页面对象问题的更多相关文章

  1. Asp.Net Mvc4 Ajax提交数据成功弹框后跳转页面

    1.cshtml页面代码 @model Model.UserInfo @{     ViewBag.Title = "Edit"; var options = new AjaxOp ...

  2. Appium 之处理首次启动手机App时的系统权限弹框

    一般首次启动一个手机App时都会有系统权限弹框,如下图所示: 权限弹窗上面的按钮都是固定的,只需要定位到“ALLOW”按钮,点击就可以了,代码如下: 这里主要用selenium里面的显示等待模块(We ...

  3. 解决f.lux总是弹框定位

    解决f.lux总是弹框定位,直接导入成功定位的注册表文件即可. 以下保存为f.lux.reg 双击导入即可. Windows Registry Editor Version 5.00 [HKEY_CU ...

  4. vue编辑、新增弹框(引用外部页面)

    vue编辑.新增弹框(引用外部页面) 2018年06月15日 09:37:20 会飞的猪biubiu 阅读数 10265    版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...

  5. 鼠标滚轮图片放大缩小功能,使用layer弹框后不起作用

    今天在项目中遇到的一个问题:点击按钮使用layer弹框弹出一张图片,需要加一个鼠标滚轮放大缩小,图片也跟着放大缩小的功能.于是在网上找了一个demo. DEMO: <!DOCTYPE html ...

  6. Dynamics CRM2016 关闭错误报告弹框提示

    在之前的版本中错误报告的弹框提示是可以在隐私首选项中设置关闭的,如下图所示 但是在2016中这个设置没了 有人说在右上角的选项中设置,但那个只能是设置个人的无法修改系统级别的.在系统中找了半天还是没有 ...

  7. 简单实现弹出弹框页面背景半透明灰,弹框内容可滚动原页面内容不可滚动的效果(JQuery)

    弹出弹框 效果展示 实现原理 html结构比较简单,即: <div>遮罩层 <div>弹框</div> </div> 先写覆盖显示窗口的遮罩层div.b ...

  8. vue定时器+弹框 跳到登陆页面

    1.做一个请求拦截,并弹框提示几秒后,跳转到登陆首页或是点击确定之后直接跳转拦截用了this.$axios.interceptors.response页面上的弹框组件用了vux的组件vux地址:htt ...

  9. easyui弹框后销毁当前tab弹框不显示的解决方式

    var id=$("#pageId").val(); var message = "{\"id\":" + id+ ",\&quo ...

随机推荐

  1. python --内建结构 汉诺塔结构

    规则: 1.每次移动一个盘子 2.任何时候大盘子在下面,小盘子在上面 方法: 1.n=1:直接将A上的盘子移动到c 上面,A->C 2.n=2: 1>A->B 2>A-> ...

  2. 站在CSS3的肩上定义选择器

    按上下文选择元素 按祖先元素选择要格式化的元素 输入ancestor,这里的ancestor是希望格式化的元素的祖先元素的选择器. 输入一个空格(必不可少). 如果需要,对后续的每个祖先元素重复第(1 ...

  3. Python-实现sign签名接口校

    前言 在之前的随笔中,我们已经学过了如何使用使用JMeter和Postman实现sign签名接口校验的接口测试,今天我们来学习一下如何写Python脚本实现签名接口的接口测试. 签名接口: 地址: h ...

  4. Appium自动化(9) - appium元素定位的快速入门

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 快速入门栗子:boss直聘 app ...

  5. 【雕爷学编程】Arduino动手做(51)---触摸按键模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...

  6. Mysql之Linux中mariadb主从复制

    master主机mysql安装配置 1.下载mariadb(Centos7开始mysql的名字) (1)其它方式(不推荐):rpm安装/软件源安装 (2)yum安装(推荐): ①centos官方的yu ...

  7. Request.params,Request.form,Request.querystring区别(转)

    自己总结:---大致意思是: 1.传参的方式分为:get方式传参,post方式传参,request.cookies和request.servervariables 2.这几种获取参数方式获取的都是一个 ...

  8. 基于elementUI使用v-model实现经纬度输入的vue组件

    绑定一个 [12.34,-45.67] (东经西经,南纬北纬 正负表示) 形式的经纬度数组,能够按度分秒进行编辑,效果如下所示,点击东经,北纬可切换. 经纬度的 度转度分秒 能够获取度分秒格式数据 C ...

  9. eclipse——Error exists in required project Proceed with launch?

    运行java文件时报错: Error exists in required project    Proceed with launch? 报错截图: 问题参生原因:开始Buildpath了一个jar ...

  10. Jmeter执行多个sql查询语句

    1.添加jdbc connection(注意标红部分) 2.添加jdbc request 3.查看结果树 本文主要向大家介绍了Oracle数据库之jmeter jdbc request 如何运行多个s ...