Appium Appium1.6.3 发布支持 获取 toast 内容实测

Young · 2016年12月14日 · 最后由 王智强 回复于 2018年01月08日 · 4100 次阅读

Appium 1.6.3

今天思寒说 Appium 1.6.3 支持 Toast ,作为一枚吃瓜群众,决定一试究竟。

思寒原帖: https://testerhome.com/topics/6685
结论:经本人实测,完美获取 Toast。

测试内容如下:

首先,你要先把你的 Appium 更新到 1.6.3

npm -g install appium@1.6.3

首先抱歉一下,昨天因为网络问题没能够继续更新,从 github 拿 java-client 生成 java-client 5.0. jar 的时候 build 没做完。

第一次尝试,更新到 Appium 1.6.3 之后,在 case 中需要使用 UIAutomation2

capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
而我使用的是 java-client 4.12 ,并没有 AutomationName.ANDROID_UIAUTOMATOR2 ,需要从 github 获取最新代码,打包 java-client 5.0
获取最新代码: git clone https://github.com/appium/java-client.git
生成 java-client 5.0: /Applications/Android\ Studio.app/Contents/gradle/gradle-2.14.1/bin/gradle assemble

提示:生成的 java-client 5.0 需要 JDK1.8 和 selenium 3.0,别忘了在你 project 加入 selenium 3.0

测试 APP 如下:https://github.com/tobecrazy/appiumDemo/blob/master/apps/webview.apk

核心代码:

    @Test(groups = { "Toast" })
public void webViewTest() throws InterruptedException {
    final WebDriverWait wait = new WebDriverWait(driver, 10);
    driver.startActivity("com.testerhome.webview", ".ToastActivity");
    MobileElement toastButton = driver.findElementById("com.testerhome.webview:id/toast");
    toastButton.click();
    Assert.assertNotNull(wait.until(
            ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[contains(@text,'Toast Test')]"))));

}

Java-client 5.0 下载:https://github.com/tobecrazy/appiumDemo/blob/master/libs/java-client-5.0.0-SNAPSHOT.jar

截图:

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 32 条回复 时间 点赞

这版本哪里可以下载

#1 楼 @michaelian
npm -g install appium@1.6.3

#2 楼 @tobecrazy 谢谢,我也试试

有亲测过的同学吗??是否可以使用?

火钳刘明 话说没找到 python 对应的调用方法。。。

过去快一天了,好水

请教一个问题,IOS 真机测试时,必须要重新编译 WDA 吗,已经安装好后,appium 能否直接启动不重装而直接启动?

这是提前占坑呀

Young 关闭了讨论 12月15日 22:18
Young 重新开启了讨论 12月15日 22:23

#2 楼 @tobecrazy 2.0 速度有提升吗?

支持真机吗

Young #18 · 2016年12月17日 Author

#12 楼 @zhangzhao_lenovo
提升效果不不是很明显,我一个 case 跑在 UIAUTOMATOR2 模式下比原来的快了 1s 左右的时间。

UIAUTOMATOR2 ,python 环境会报错。而且 python 无法识别 toast。求大神指导

#15 楼 @michaelian 看看 demo 呗...好像 pyhon-client 还没更新

#16 楼 @zuiniao123 demo?我看了 appium-client 更新日志是一个月前,好像连 uiautomator 2.0 都没有更新

xinxjxjxj 新手求解,怎么抓取闪现的元素 中提及了此贴 12月18日 10:29

用了 UIAutomator 出现了比较多的问题,例如初始化初始化 AndroidDriver 时候直接报错,整个 appium 服务都挂了,还有 findElementBy 的时候也是,还有 sendKeys 一用也是整个挂了,

Young #20 · 2016年12月21日 Author

#19 楼 @litianping
没有上下文

#20 楼 @tobecrazy 怎么会出现这样的情况的呢,怎么解决呢

@seveniruby @tobecrazy 你好,我现在一启用这个,程序就跑不起来,去掉又识别不到 toast,能不能帮忙看看是什么原因导致的?

capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);

已解决,看了下日志,更新了 appium-uiautomator2-driver 就可以了

#22 楼 @snowmaster 怎么更新 appium-uiautomator2-driver

安装 cnpm -g install appium@1.6.3 换 taobao 的数据源,到这个地方就卡住了,怎么办?

#24 楼 @xiaoan_2131 卡住了就重新下,多弄几次就好了

@tobecrazy 必须要 java-client 5.0 吗,java-client 5.0 在哪里下载?

@zgj5971 自己弄个私服下载就搞定了。。。。

请问 python appium1.6.3 怎么实现捕获 toast 的?

bauul 请问如何将 java-client-master 打包成对应的 jar 中提及了此贴 02月15日 16:24
雪怪 回复

怎么更新 appium-uiautomator2-driver

32楼 已删除
Young #33 · 2017年05月05日 Author

需要 Guava java 包

Young 回复

请问一下,对 toast 获取的对象调用 getText 的时候,出现以下报错,是什么原因呢?

baxia 回复

解决啦,webElement 获取文本使用 element.getAttribute("text") 就可以啦

用你的 apk 测试一点问题都没有 识别用的关键字 全部匹配 部分匹配都可以

同样的方法 我用在其他 app 上就识别不到

例如截图这种场景
识别关键字 用 验证码 打出来只有 获取验证码

如果用 验证码错误 就会出错

@carl @tobecrazy 帮我看一下问题呢

@tobecrazy 你提供的 demo apk 里面的 toast 是什么类型 ,怎么写的。

楼主 问题解决了吗????? iOS 的 toast 怎么去抓取啊

1楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册