网上很多 python/java捕获toast的方法,但ruby的简直没见过。

selendroid客户端是基于selenium,而不一定需要appium,所以很多selenium的方法可以直接使用,想到这点 那就很多方法可以去尝试了。

事实上:TOAST使用selendroid也是没法定位,而是借用 PARTIAL_LINK_TEXT(部分匹配text) 或者LINK_TEXT(全词匹配)

使用wait方法 等待text出现。(此方法使用selendroid才能定位到,appium没法定位,具体原因是uiautomation框架的缺陷问题)

例如:

python下 toast 信息判断。

from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

appPATH="E:\\APP\\app-debug_3.1.3.876.apk"
desired_caps={
'platformVersion':'4.0',
'deviceName':'',
'udid':'a6522c88',
'platformName':'android',
'automationName':'Selendroid',
'app':appPATH,
'appPackage':'com.tenda.router.app',
'appActivity':'.activity.Anew.Splash.SplashActivity',
'newCommandTimeout':3600,
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

element =WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT,u"保存成功")))
def find_toast(self,message):
try:
element = WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT,message)))
return True
except:
return False

关键语句就是代码中的黑体部分。

类似的,使用ruby

rv=Selenium::WebDriver::Wait.new({:timeout => 5}).until{$b.find_element(:link_text => '保存成功')}

rv=Selenium::WebDriver::Wait.new({:timeout => 5}).until{$b.find_element(:partial_link_text=> '保存成功')}

其中timeout是wait的超时时间。

rv==err时,定位失败。

rv!=err时,定位成功。

java等其他方法定位也应该是一样,有selenium包就行。

selendroid项目实战2--ruby下的TOAST定位的更多相关文章

  1. selendroid项目实战教程1

    selendroid是国内使用非常少的框架.资料也少.刚好公司项目用到,给大家分享下,技术不太行,有错误还望指正. 使用selendroid契机,是公司开发的APP,需要大量捕捉Toast信息.公司的 ...

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

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

  3. 项目实战8.2-Linux下Tomcat开启查看GC信息

    本文收录在Linux运维企业架构实战系列 转自https://www.cnblogs.com/along21/ 一.开启GC日志 1.在Tomcat 的安装路径下,找到bin/catalina.sh  ...

  4. 从0使用Ruby on Rails打造企业级RESTful API项目实战之我的云音乐

    本节对我们项目实现的功能和知识点做一个简单的介绍,因为是RESTful API项目,所以对于后端来说基本上没有什么UI界面可展示,那我们就在关键的点,使用客户端(Android)实现的效果图. 课程简 ...

  5. 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】

    一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...

  6. Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类

    本文目录 1.  前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...

  7. 【无私分享:ASP.NET CORE 项目实战(第三章)】EntityFramework下领域驱动设计的应用

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在我们 [无私分享:从入门到精通ASP.NET MVC] 系列中,我们其实也是有DDD思想的,但是没有完全的去实现,因为并不是 ...

  8. 096实战 在windows下新建maven项目

    1.拷贝settings到.m2文件下 2.修改文件 3.新建Project项目 4.转换为maven项目 config下转换 5.拷贝pom文件 <project xmlns="ht ...

  9. Bootstrap 学习笔记 项目实战 首页内容介绍 下

    最终效果: HTML代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset ...

随机推荐

  1. NOR型flash与NAND型flash的区别

    1) 闪存芯片读写的基本单位不同  应用程序对NOR芯片操作以“字”为基本单位.为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块内还分成扇区.读写时 ...

  2. 问题:关于贴友一个用js传递value默认值的简单实现

    需求和代码如下: “这是我的代码:” 1: <input type="text" id="price2" value="333"/&g ...

  3. Magento 前台的logo更改

    进入后台: 系统-配置, 然后选择左栏的“设计”, 选择右栏的“页眉”里面, 一般logo的路径在: skin/frontend/base/default/images/media/logo.png ...

  4. Android Studio工程导入另一个工程作为lib

    简单视频应用开发时,使用Vitamio作为视频解码库,官方建议直接以工程作为lib方便升级,将该工程导入到项目时不知道该怎么做,参考了下面的博客,这里存档标记一下. 参考:导入一个Android St ...

  5. POJ 3764 (异或+字典树)

    早就听过用字典树求异或最大值,然而没做过.发现一碰到异或的题就GG,而且因为以前做过的一道类似的题(事实上并不类似)限制了思路,蠢啊= =. 题意:一棵带权的树,求任意两点间路径异或的最大值. 题解: ...

  6. 【现代程序设计】【homework-02】【11061027】

    Q:描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式,  或者其它方法) 让整个程序的架构不至于崩溃的? A:由于使用的是面向过程的C语言,所以维护设计这个问 ...

  7. decorview that was originally added here or java.lang.IllegalArgumentException: View not attached to window manager

    使用Dialog的时候,没少出现下面这两个报错 12-11 17:47:49.776: E/WindowManager(11461): android.view.WindowLeaked: Activ ...

  8. hdoj 2682 Tree

    Tree Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  9. 利用HTML5 Geolocation API在百度地图中显示你的位置

    代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <met ...

  10. 强大的代码生成工具MyGeneration

    强大的代码生成工具MyGeneration 转 MyGeneration是一个功能很强大的代码生成工具.通过编写包含各种类型脚本(C#,VB.Net,JScript,VBScript)的模板,通过数据 ...