学习selendroid初衷
为了解决工作中的一个问题,开始学习selendroid。
工作中,有一些所谓H5应用需要测试,这些应用程序描述如下:
- 通过微信平台传播,也就是依靠微信的朋友圈传播;
- 可以通过类似于http://XXXWWWYYY这样的地址访问;
- 应用内容一般是一些时事热点,比如国家的两会、奥运会、中秋节等等;
- 应用一般由10~20页面组成,可以通过手指的点击滑动等操作切换页面;
- 页面元素包括文字、图片、音乐等;
测试的步骤是:
- 先把每个H5应用的url地址发送到微信聊天窗口;
- 点击url地址;
- 打开应用后,依次检查每个页面是否可以正常打开;
移动端的应用分为native、mobile web、hybrid三类,前面提到的H5产品都属于hybrid类型:
- 使用iOS和安卓SDK开发的产品属于原生应用(native);
- 可以通过移动端浏览器访问的应用属于移动web应用(mobile web);
- 有个原生的控件叫做webview,原生应用通过它可以和web内容进行交互,于是使用webview的原生应用叫做混合型应用(hybrid);
曾经选用appium对这些H5应用进行自动化测试。由于微信的qq浏览器内核有限制,导致通过appium只能读取到native这一个“上下文(context)”,无法获取webview这个“上下文”,也就无法进一步操作webview中的元素。
在testerhome这个移动测试社区中,chenhengjie123 提到:
Appium 获取 context 使用的是
adb shell cat /proc/net/unix
,然后通过分析里面的内容实现的。相关代码为:
https://github.com/appium/appium/blob/6dd575948220725b897f89775b97c4e1ab8fc28b/lib/devices/android/android-hybrid.js(里面的androidHybrid.listWebviews
方法)而 selendroid 是通过遍历 Hierarchy 结构来找 webview 的(WebView 这个 class 的实例)。相关代码:
https://github.com/selendroid/selendroid/blob/acdd467f001d0afec6278a6f160775bce62d79e3/selendroid-server/src/main/java/io/selendroid/server/model/internal/WebViewHandleMapper.java(里面的findWebViews
方法)
于是开始学习selendroid。
学习selendroid初衷的更多相关文章
- Diligent Engine学习笔记初衷
2020年过去一个月了,回首过去的一年,工作确实很忙,但是自己个人的技术也没得到什么成长,项目当中一些比较难搞的问题也没得到更深入的研究.思来想去,希望新的一年能改变自己的工作方式,将工作上的事物进一 ...
- Python pandas学习总结
本来打算学习pandas模块,并写一个博客记录一下自己的学习,但是不知道怎么了,最近好像有点急功近利,就想把别人的东西复制过来,当心沉下来,自己自觉地将原本写满的pandas学习笔记删除了,这次打算写 ...
- 我的Linux学习之路及参考书籍
学习目的 很简单的考虑,最近在各大招聘网站上找工作,发现多数c/c++开发职位都需要Linux开发经验,让我很苦恼,因为Linux我到目前为止知之甚少,知道Linux的概念,也在大学期间了解过一段时间 ...
- iOS 10 消息推送(UserNotifications)秘籍总结(一)
前言 之前说会单独整理消息通知的内容,但是因为工(就)作(是)的(很)事(懒)没有更新文章,违背了自己的学习的初衷.因为互联网一定要有危机意识,说不定眼一睁,我们就out丢了饭碗. 图片来源网络.jp ...
- 20155238 2016-2017-2《Java程序设计》课程总结
每周作业链接汇总(按顺序) 预备作业1 预备作业2 预备作业3 第一周作业 第二周作业 第三周作业 第四周作业 第五周作业 第六周作业 第七周作业 第八周作业 第九周作业 第十周作业 自认为写得最好一 ...
- 在pixi中使用你的自定义着色器
通过几天的学习,对openGL.shader有了一个大致的了解. 回到学习的初衷吧,在基于pixi.js重构D3项目的时候,因为精灵层级的问题,我得按照一定的先后顺序将不同类别的精灵添加到场景中去. ...
- Kotlin编写Processing程序(使用函数式编程思维和面向接口方式)
写一例Kotlin编写的Processing程序,充分调用函数式编程思维和面向接口的编程思维,供自己和读者参考学习. 初衷 想要实现一行行的文字排版功能,每一行作为一个单位,可制定显示的位置.大小.文 ...
- Challenging Common Assumptions in the Unsupervised Learning of Disentangled Representations
目录 概 主要内容 Locatello F., Bauer S., Lucic M., R"{a}tsch G., Gelly S. Sch"{o}lkopf and Bachem ...
- javascript学习初衷
很久没有过来写东西了,由于要做小网页,介于不懂javascript,一味的去爬其他站点的代码下来,却不能自由组合,控制,达到自己想要的效果, 于是只能沉下心,javascript从头学起,还记得张老师 ...
随机推荐
- github每次push提交都要输入账号密码
问题产生的原因是在克隆的时候使用的是https的方式或者用一些特殊的指令来克隆的github项目源,如 golang里的go get github.com/...... 没次提交push的时候都会提示 ...
- POI2004
11th Polish Olympiad in Informatics(POI2004) <br > 填坑计划第二弹......把这个没填完的坑搬过来啦~ 上次勉强填完NEERC的坑... ...
- SSM整合案例
使用IDEA整合SSM spring核心配置文件:beans_core.xml/applicationContext.xml <?xml version="1.0" enco ...
- Spring实战Day3
通过XML创建装配bean 1.装配不存在成员变量的bean <bean id="talent" class="cn.jqzhong.Spring.study.da ...
- mac os安装jdk、卸载
1.JAVA版本8u171与8u172的区别 https://blog.csdn.net/u014653815/article/details/80435226 奇数版本是稳定版本,上面修订的所有 ...
- Mysql5.6审计功能
1. 前言 为了安全和操作的可追溯性考虑,越来越多的公司增加了审计功能.mysql5.5推出了相关的审计功能,到5.6.20功能进一步完好.算是勉强可用了.尽管细粒度方面做的不是太好. ...
- PS 如何制作WIN7的玻璃化透明窗口效果
1 绘制一个圆角矩形,并将不透明度设为16%以及添加投影效果 2 再次添加外发光效果 3 新建一个图层,再填充一下这个圆角矩形(可以填充为任意颜色,只要和别的颜色区分开来) 4 选中这个区 ...
- 记事本中写c/c++程序在Windows下运行
1.在桌面新建一个1.c,内容例如以下: 2.打开cmd命令行窗体,进入CodeBlock安装文件夹下的:E:\Installed\CodeBlocks\MinGW.然后运行mingwvars. ...
- C/C++中怎样获取日期和时间
C/C++中怎样获取日期和时间摘要: 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时.时间的获取.时间的计算和显示格式等方面进行了阐述.本文还通过大量的实 ...
- 搭建windows下的odoo开发环境
odoo运行环境的必须要要求是 python环境 postgreSQL数据 数据库可以安装在别的机器上,比如服务器:当然对于开发环境,通常,数据库与代码调试安装在同一台机器上. 首先安装 postgr ...