selendroid是国内使用非常少的框架、资料也少。刚好公司项目用到,给大家分享下,技术不太行,有错误还望指正。

使用selendroid契机,是公司开发的APP,需要大量捕捉Toast信息。公司的自动化平台已经很成熟,并且WEB自动化已经使用ruby watir-Webdriver。

因此为了加入公司自动化平台,使用ruby是最快的方式,但是资料少这是很头疼的事情。

使用APPIUM的时候发现指令在移动端执行的速度很慢,而在使用selendroid之后惊喜的发现配置速度很快,快要赶上webdriver的速度了。

特别说明:并非高版本(API>16)就不能使用selendroid作为自动化测试框架,实测API 21也是可以使用selendroid

原始参考资料:http://selendroid.io/

纯selendroid环境搭建

具体可参考网站资料,java -jar XXXXXx.jar -app test.apk 即可开启selendroid服务器。

Appium-selendroid环境:

但作为项目实施 建议使用appium的selendroid模式。

好处:

1、appium已经加入selendroid作为一个启动模式,日志管理、BUG定位环境搭建等都比较成熟。

2、纯selendroid直接使用selenium库作为驱动,很多辅助动能需要自己去实现,例如中文输入、unicode输入等。这些移动端测试能考虑的事情,appium团队事实上已经帮忙考虑了。

3、启动appium与默认appium模式并无区别,使用GUI开启或者 node appium.js即可。

具体的APPIUM环境搭建不在赘述,大家可以参考网上很多的教程应该都不难。

ruby初始化:

贴入代码:

# encoding utf-8
require 'watir-webdriver'
require 'appium_lib'
_caps={caps:{ app:'E:/APP/app-debug_3.1.3.876.apk',unicodeKeyboard:'True',resetKeyboard:'True',platformVersion:'5.0',automationName:'Selendroid',udid:'LGD857cfd6ea69',deviceName:'1', platformName:'Android', appActivity:'.activity.Anew.Splash.SplashActivity', appPackage:'com.tenda.router.app',newCommandTimeout:3600},appium_lib: { sauce_username: nil, sauce_access_key: nil } }
$b= Appium::Driver.new(_caps).start_driver

事实上与APPIUM初始化并无太多区别:

1、APP路径必须有,因为每次初始化都要重新安装APP。(大家不用担心APP安装会很麻烦,命令安装时间很短)

2、UID必须有 就是appium的devices name参数。

关于selendroid元素定位:

可以使用sdk里面的uiautomatorviewer工具进行定位获取ID等信息,其他用不到的可以参考selendroid官方网站的地位方式。

注意:uiautomatorviewer获取ID时需要去掉前面的Package名称/ 后面的才是selendroid的ID,否则定位不到。

并且selendroid虽然直接使用appium类,但是需要使用selennium的语法,因此使用appium的定位语句语法会报错。

我用到最多的就是

按照全词匹配查找:driver.find_element(:link_text,'Blog')

按照text的部分进行查找:driver.find_element(:partial_link_text,'Blo')

selendroid项目实战教程1的更多相关文章

  1. Python NLP完整项目实战教程(1)

    一.前言 打算写一个系列的关于自然语言处理技术的文章<Python NLP完整项目实战>,本文算是系列文章的起始篇,为了能够有效集合实际应用场景,避免为了学习而学习,考虑结合一个具体的项目 ...

  2. selendroid项目实战3 selendroid driver初始化失败问题

    小米4/LG手机作为测试用机,随着测试时间变长,driver初始化失败率越来越高. 分析: 1.手机原因: 从小米换到LG,刚开始问题确实减少了,但是时间一长,又出现类似问题,提示Connect re ...

  3. selendroid项目实战2--ruby下的TOAST定位

    网上很多 python/java捕获toast的方法,但ruby的简直没见过. selendroid客户端是基于selenium,而不一定需要appium,所以很多selenium的方法可以直接使用, ...

  4. Python框架 Flask 项目实战教程

    本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...

  5. [转]ionic3项目实战教程三(创建provider、http请求、图文列表、滑动列表)

    本文转自:https://blog.csdn.net/lyt_angularjs/article/details/81145468 版权声明:本文为博主原创文章,转载请注明出处.谢谢! https:/ ...

  6. Java支付项目实战教程,包括支付宝,微信等支付方式,不看亏!

    须知:视频来源网络,侵权请联系删除! 获取方式 扫描下面二维码回复:1024

  7. Node+Express+MongoDB + Socket.io搭建实时聊天应用实战教程(二)--node解析与环境搭建

    前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战.写教程一方面在自己写的过程中需要考虑更多的东西,另一方面希望能对node入门者有 ...

  8. PokemonGo-LBS AR项目实战

    <Pokemon GO>在2016年发布,立即成为一款现象级手游,时至今日也是最成功的AR游戏!<Pokemon GO>目前仍旧吸引全球范围内大批玩家入驻,而这也使得该款游戏创 ...

  9. Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录

    一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...

随机推荐

  1. ununtu卸载软件

    sudo apt-get remove vim

  2. bzoj1443

    首先要思考的问题肯定是,什么点可以是ans, 不难想到对图黑白染色,假如一个棋子不管怎么走,都只能走到和它同色的点上时,这就是一个ans 再考虑,每次棋子的移动都是黑白相间的 再考虑,黑白染色是可以构 ...

  3. easyui datagrid plunges 扩展 插件

      项目使用 springmvc4.x  spring4.x  hibernate4.x easyui 为了便于开发,扩展了easyui 的 datagrid 功能,下面直接贴上扩展代码: /** * ...

  4. iOS添加自定义字体方法

    1:获取字体文件 从各种渠道下载字体文件ttf, 网站或者从别的ipa里扣出来.(以fzltxh.ttf为例) 2:将fzltxh.ttf文件拷贝到工程中 3:在Info.plist中添加项: Fon ...

  5. base64dll

    继上次的dll学习后,想开发个软件,连接到百度的云存储服务器,上传文件.发现要算秘钥,在网上找了到了hmac-sha1,base64的源码,发现有些是c++写的,有些是c写的一起写到一个文件里有些麻烦 ...

  6. JZ2440开发笔记(5)——通过按键点亮LED

    在JZ2440中,点亮LED就是给LED的控制位设置为输出,数据位设置为低电平,而通过按键点亮LED,就需要将按键对应的控制位设置为输出. 下面是JZ2440的3个LED电路图: 下面是JZ2440的 ...

  7. 从 NavMesh 网格寻路回归到 Grid 网格寻路。

    上一个项目的寻路方案是客户端和服务器都采用了 NavMesh 作为解决方案,当时的那几篇文章(一,二,三)是很多网友留言和后台发消息询问最多的,看来这个方案有着广泛的需求.但因为是商业项目,我无法贴出 ...

  8. Hadoop datanode无法启动的错误

    在启动Hadoop分布式部署的过程中,发现datanode没有正常启动,查看了一下日志发现报错: java.io.IOException: Incompatible clusterIDs in /op ...

  9. algorithm@ dijkstra algorithm & prim algorithm

    #include<iostream> #include<cstdio> #include<cstring> #include<limits> #incl ...

  10. svn无法更新解决方案

    1.删除C:\Documents and Settings\用户名\Application Data\Subversion\auth下的文件,删除svn登录信息. 2.将eclipse中 window ...