Appium自动化之获取APP Toast(消息提示框)的信息

Appium自动化之获取APP Toast(消息提示框)的信息,第1张

在我们日常使用App过程中,经常会看到App界面有一些d窗提示(如下图所示)这样的提示框称之为Toast提示框,这些提示元素出现后等待3秒左右就会自动消失,那么我们该如何获取这些元素文字内容呢?

Appium 163开始支持识别Toast内容,主要是基于UiAutomator2,

因此需要在Capablity配置如下参数:

desired_caps['automationName']='uiautomator2'

安装appium-uiautomator2-driver: 安装命令如下:

cnpm install appium-uiautomator2-driver

安装成功后可以在 C:\Users\XXXX\node_modules看到对应的文件:

进入登录界面输入错误的用户名或者密码,获取Toast内容:

注意:Toast内容为中文时,顶部必须注释# coding=utf-8 否则会因为编解码导致文字识别失败。

如果是进行wap端测试

1、使用appium集成的chromeDriver。在手机端安装chrome浏览器,下载对应版本的chromeDriver,使用appium初始化Chrome浏览器相关设置,可以启动chrome,利用chromedriver实现自动化。

2、如果是内嵌webview,需要初始化driver后,利用drivercontexx("WEBVIEW_1"),进行切换到webview,进行元素定位或者自动化

3、其他方式,启动源生浏览器,但这种方式是将源生浏览器当做一个app来使用,可能启动activity不允许三方进行调用,这样会导致失败

控件的特征就是控件的属性,我们可以通过上一讲中的uiautomatorviewer去获取。

在appium的定位世界里,下面这些方法是可以为我们使用的。也就是说,我们通过下面几个约定好的方式,按照webdriver和appium的DSL(自行搜索并理解)进行控件特征的描述和定位。

继承自webdriver的方法,也就是通过这3个特征可以定位控件

find by "class" (ie, ui component type,andorid上可以是androidwidgetTextView)

find by "xpath" (ie, an abstract representation of a path to an element, with certain constraints,由于appium的xpath库不完备的原因,这个不太推荐)

find by "id"(android上是控件的resource id)

由Mobile JSON Wire Protocol协议中定义的方法,更适合移动设备上的控件定位

-ios uiautomation: a string corresponding to a recursive element search using the UIAutomation library (iOS-only)

-android uiautomator: a string corresponding to a recursive element search using the UiAutomator Api (Android-only)

accessibility id: a string corresponding to a recursive element search using the Id/Name that the native Accessibility options utilize

在appium 的client对Mobile JSON Wire Protocol中定义的方法进行了封装,使其调用起来更加方便

uiautomator和appium都作为移动端自动化测试的工具那么他们有什么区别呢

1适用场景不同

uiautomator适用于adroid手机端自动化测试而appium不仅适用于Android手机,同样适用于ios手机

2作用域不同

在Android系统场景中,uiautomator可跨app,在手机ROM层面实现交互而appium只适合在应用内部,不能跨app

而且appium可以实现webview界面的自动化测试,而uiautomator却不能

3原理

appium是通过webDriver调起应用,以appium server作为桥梁,通过Bootstrapjar调用的android端uiautomator命令和ios端uiautomation/XCTest(ios 8以上)

uiautomator通过android instrumentation获取系统上下文,设备信息状态等

1、打开微信在任意窗口输入一下内容

针对微信版本在70以下,可以只需要在任意聊天窗口输入debugx5qqcom即可打开。

针对微信版本在70+,微信有对H5开关做了调整,需要在聊天窗口输入如下:

>

锁定解锁屏幕

driverlock(5)

将把当前应用放到后台 5 秒

driverbackground_app(5)

收起键盘

driverhide_keyboard()

启动 ACTIVITY

在当前应用中打开一个 activity 或者启动一个新应用并打开一个 activity 。 只能在 Android 上使用

driverstart_activity('comexampleandroidapis', 'Foo')

打开下拉通知栏 只能在 Android 上使用

driveropen_notifications()

检查应用是否已经安装

driveris_app_installed('comexampleandroidapis')

安装应用

driverinstall_app('path/to/myapk')

删除应用

driverremove_app('comexampleandroidapis')

摇晃 (SHAKE) 关闭应用

drivershake()

关闭应用

driverclose_app()

启动 (LAUNCH)

根据服务关键字 (desired capabilities) 启动会话 (session) 。请注意这必须在设定 autoLaunch=false 关键字时才能生效。这不是用于启动指定的 app/activities ————你可以使用 start_activity 做到这个效果————这是用来继续进行使用了 autoLaunch=false 关键字时的初始化 (Launch) 流程的

driverlaunch_app()

应用重置(相当于卸载重装应用)

driverreset()

列出所有的可用上下文 (CONTEXT)

context 可以理解为 可进入的窗口 。例如,对于原生应用,可用的 context 和默认 context 均为 NATIVE_APP

drivercontexts

列出当前上下文

drivercurrent_context

获取当前页面的源码(可以辅助元素定位)

driverpage_source

截图屏幕

driverget_screenshot_as_file(r'E:\img\img1png') # 截取整个屏幕

获取应用程序的字符串 (APP STRINGS)

driverapp_strings

给设备发送一个按键事件(KEY EVENT)(只限安卓)

driverkeyevent(176)

获取当前 activity。只能在 Android 上使用

drivercurrent_activity

模拟用户滑动(SWIPE)

driverswipe(start=75, starty=500, endx=75, endy=0, duration=800)

捏屏幕(PINCH) (双指往内移动来缩小屏幕)

driverpinch(element=el)

放大 (ZOOM)屏幕 (双指往外移动来放大屏幕)

driverzoom(element=el)

滑动 (SCROLL)到某个元素。从一个元素滚动到另一个元素

driverscroll(originalEl, destinationEl ) # originalEl - 要滚动的元素 destinationEl - 要滚动到的元素

设置元素的值

driverset_value(element=el,Val) # 设置 el 元素的值

推送文件到设备中去(PUSH FILE),推送文件需要转换为'base64'

获取/设置 appium 的服务器设置。

多个点点击(最多五个点)

drivertap([(100, 20), (100, 60), (100,100)], 500) # list 中的元组放 5 个点,500 表示按下 500ms

以上就是关于Appium自动化之获取APP Toast(消息提示框)的信息全部的内容,包括:Appium自动化之获取APP Toast(消息提示框)的信息、appium 怎么定位纯 HTML5 页面应用、appium 页面分层怎么定位控件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9588295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存