RF AppiumLibrary 关键字分类解读

在robotframework当中,要实现App自动化,则需要使用AppiumLibrary这个库。

目前版本中,有90+关键字。随着版本的更新,关键字的个数和名字也会有所变动。

http://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html

1、AppiumLibrary的安装:
前提:已安装好python环境并配置好环境变量。然后在命令行当中,运行以下命令:

pip install robotframework-appiumlibrary

AppiumLibrary是一个python第三方库(存放在python安装目录下的Lib/site-packages/AppiumLibrary)。它的结构如下,其中keywords目录下存放的是关键字。

2、引入AppiumLibrary时的初始化参数:

timeout=5, run_on_failure=Capture Page Screenshot

导入AppiumLibrary时可以使用可选参数。
timeout,是用于等待所有等待操作的默认超时。以后可以使用set Appium Timeout设置它。
run_on_failure,指定当AppiumLibrary关键字失败时要执行的关键字名称(来自任何可用库)。
默认情况下,Capture Page Screenshot 将用于拍摄当前页面的截图。当值设置为“No Operation”时,将完全禁用截图功能。

 

3、关键字参数:

AppiumLibrary中需要在页面上查找元素的所有关键字都采用一个参数,即locator或webelement。

locator是一个字符串,描述如何使用指定不同位置策略的语法来定位元素。webelement是一个保存webelement实例的变量,它是元素的表示形式。

(1)定位器参数:

使用locator定位:

默认情况下,当提供定位器locator时,它与特定元素类型的键属性匹配。对于iOS和Android,关键属性是所有元素的id,并且只使用id就可以轻松地定位元素。

使用webelement定位:

从AppiumLibrary 1.4版本开始,可以传递包含WebElement而不是locator字符串的参数。

要获取WebElement,请使用新的get WebElements或get WebElement关键字。

示例:

@{elements}Get Webelementsclass=UIAButton
Click Element@{elements}[2] 

(2)其他参数

log level参数:

定义使用的日志级别。有效的日志级别是WARN、INFO(默认)、DEBUG、TRACE和NONE(无日志记录)。

 

4、以下列举常用的关键字:

一、连接设备并启动App使用的关键字:

 

二、系统及屏幕操作关键字

关键字

参数

说明

Hide Keyboardkey_name=None

隐藏设备上的软件键盘。可选参数。

在iOS中,使用key_name按特定键,例如Done。在Android中,不使用任何参数。

Landscape 

将设备方向设置为横向。

Portrait 

将设备方向设置为纵向。

Set Appium Timeoutseconds设置各个关键字使用的超时时间(秒)。
有很多个 Wait... 的关键字以 timeout 作为参数。所有这些超时参数都是可选的。所有这类关键字使用的超时都可以使用此关键字进行全局设置。
上一个超时值由该关键字返回,可用于以后设置旧值。默认超时为5秒,但可以在导入库时更改。
Set Locationlatitude, longitude, altitude=10

设置设备的经纬度位置。仅限安卓。

- latitude 纬度

- longitude 经度

- altitude 海拔高度

Set Network Connection StatusconnectionStatus

设置网络连接状态。仅限安卓。

可选数据:

ValueAliasDataWifiAirplane Mode
0(None)000
1(Airplane Mode)001
2(Wifi only)010
4(Data only)100
6(All network on)110

eg:Set Network Connection Status        2

Lock

seconds=5

锁定设备一定时间。仅限iOS。

Long Presslocator, duration=1000长按元素一定时间,持续时间可选,单位是毫秒,默认1000
Press Keycodekeycode, metastate=None

向设备发送按键代码。仅限安卓。

???

Long Press Keycodekeycode, metastate=None向设备发送长按键盘代码。仅限安卓。

Scroll

start_locator, end_locator

从一个元素滚动到另一个元素。关键定位是元素id和name。

Scroll Down

locator

向下滚动到元素

Scroll Up

locator

向上滚动到元素

Shake

 

摇动设备

Swipe

start_x, start_y, offset_x, offset_y, duration=1000

从一个坐标点到另一个坐标点滑动,持续时间可选,单位是毫秒,默认1000

模拟各种屏幕手势操作。

Swipe By Directiondirection按指定方向滑动:left, right, down, up。
Swipe By Percentstart_x, start_y, end_x, end_y, duration=1000

从屏幕的一个百分比滑动到另一个百分比,持续时间可选。

对于不同的屏幕分辨率,正常的滑动无法缩放,这可以使用百分比来避免。

Taplocator, x_offset=None, y_offset=None, count=1

多击一个元素。

参数:
x_offset-(可选)要点击的x坐标,相对于元素的左上角。
y_offset-(可选)y坐标。如果使用y,则还必须设置x,反之亦然
count- 用于设置点击该元素的次数,默认1次

Zoomlocator, percent=200%, steps=1放大某个元素一定量。
Touch Idmatch=TrueSimulate Touch ID on iOS Simulator
Toggle Touch Id Enrollment Toggle Touch ID enrolled state on iOS Simulator.
Capture Page Screenshotfilename=None

截取当前页面的屏幕快照并将其嵌入日志中。
filename参数指定要将屏幕截图写入的文件名称。如果未指定文件名,则屏幕快照将保存到Robot Framework日志文件目录下的文件,名称为appium-screenshot-<counter>.png中。如果文件名不是以绝对格式给出的,则它也被认为是相对于同一目录的。

Go Back 在浏览器历史记录中后退一步。
Go To Urlurl在默认web浏览器中打开指定URL。
Execute Scriptscript在页面中插入一段JavaScript代码,以便在当前选定框架的上下文中执行(仅限Web上下文)。
假定执行的脚本是同步的,对脚本求值的结果将返回给客户端。
Execute Async Scriptscript将异步JavaScript片段插入页面,以便在当前选定帧的上下文中执行(仅限Web上下文)。
假定执行的脚本是异步的,并且必须通过调用提供的回调来发出信号,回调始终作为函数的最终参数提供。此回调的值将返回给客户端。

 

三、应用操作关键字

关键字

参数

说明

Background Appseconds=5

将应用程序置于设备后台运行一定时间。

Install Appapp_path, app_package安装应用程序
Open Applicationremote_url, alias=None, **kwargs通过Appium服务器,启动一个新应用程序。
Close Application  
Close All Applications  
Launch Application 

启动应用程序。应用程序可以在Appium会话运行时启动。

此关键字可用于在测试用例期间或测试用例之间启动应用程序。

Quit Application 

退出应用程序。当Appium会话保持活动状态时,可以退出应用程序。

此关键字可用于在测试用例期间或测试用例之间关闭应用程序。

Remove Applicationapplication_id

通过应用程序id标识,卸载应用程序。

Remove Application    com.netease.qa.orangedemo

Reset Application 重置应用程序。当Appium会话保持活动状态时,可以重置打开的应用程序。
Switch Applicationindex_or_alias按索引或别名切换活动应用程序。
index_or_alias是应用程序索引(整数)或别名(字符串)。索引是Open Application操作的返回值。
此关键字返回上一个活动应用程序的索引,可用于以后切换回该应用程序。
   

 

四、页面元素操作关键字

关键字

参数

说明

Get Activity 检索设备上的当前活动页。
仅限于安卓系统。
Start ActivityappPackage, appActivity, **opts

在测试期间打开任意活动页。

如果活动页属于另一个应用程序,则启动该应用程序并打开该活动页。
仅限于安卓系统。

Wait Activityactivity, timeout, interval=1

等待页面出现:等待中,直到目标页面出现或超时失败。

仅适用安卓。

activity - 目标页面
timeout - 最长等待时间,以秒为单位
interval - 重试之间的等待间隔(秒)

   
Clear TextlocatorClears the text field identified by locator.
Click A Pointx=0, y=0, duration=100Click on a point

Click Button

index_or_name

点击按钮

Click Button 注销

这里“注销”的class属性,必须是Button

Click Element

locator

点击元素

Locator可以是resource-id,也可以是xpath;但必须是当前页面唯一存在的;一般用该关键字可以完成所有元素点击

Click Element At Coordinatescoordinate_X, coordinate_Y单击某个坐标处的元素。

Click Text

text, exact_match=False

点击文字。

例如,Click Text 我的,“我的”需要是当前页面唯一存在的。

Input Passwordlocator, text在由定位器标识的元素中,键入给定的密码文本。

Input Text

locator, text

在指定元素中输入特定文本。

Input Valuelocator, text

在由定位器标识的元素中,键入给定的文本值。

This is an IOS only keyword, input value makes use of set_value.

Log Sourceloglevel=INFO记录并返回当前页或框架的整个html源代码。
Pull Filepath, decode=False检索路径处的文件并返回其内容。
仅限于安卓系统。
Pull Folderpath, decode=False检索路径处的文件夹。返回压缩的文件夹内容。
仅限于安卓系统。
Push Filepath, data, encode=False将指定数据放入指定路径的文件中。
仅限于安卓系统。
Pinchlocator, percent=200%, steps=1Pinch in on an element a certain amount.

 

关键字中包含get的,“获取xxx”:

关键字参数说明
Get Window Widthpath, data, encode=False 
Get Window Height  
Get Appium SessionId Returns the current session ID as a reference
Get Appium Timeout Gets the timeout in seconds that is used by various keywords.
Get Capabilitycapability_nameReturn the desired capability value by desired capability name
Get Contexts 获取可用上下文。
Get Current Context Get current context.
Get Element Attributelocator, attribute使用给定属性 获取元素属性:name、value...
Get Element Locationlocator 
Get Element Sizelocator 
Get Matching Xpath Countxpath 
Get Network Connection Status 返回指定网络连接类型的整数位掩码。
仅限于安卓系统。
Get Source 返回当前页的整个源码。
Get Text

locator

获取某个元素的文本内容。

获取内容后存储到指定变量中,从而在后续脚本中调用该内容。

Get Webelementlocator返回第一个匹配定位条件的WebElement对象。
Get Webelementslocator返回与定位条件匹配的WebElement对象的列表。

 

五、等待关键字

(关键字中包含wait的, timeout参数默认为seleniumlibrary初始化值,默认为5秒):

关键字

参数

说明

Wait Activityactivity, timeout, interval=1

等待页面出现:等待中,直到目标页面出现或超时失败。

仅适用安卓。

activity - 目标页面
timeout - 最长等待时间,以秒为单位
interval - 重试之间的等待间隔(秒)

Wait Until Element Is Visiblelocator, timeout=None, error=None

等待直到用定位器指定的元素可见。如果在元素可见之前超时,则失败。

error - 可用于覆盖默认错误消息。

Wait Until Page Contains

text, timeout=None, error=None

等待直到界面中包含某些文字,才进行下一步

Wait Until Page Contains  预约挂号

Wait Until Page Contains Element

locator, timeout=None, error=None

等待直到界面中包含某些元素,才进行下一步

Wait Until Page Contains Element  [locator]

locator可以是resource-id,也可以是xpath

Wait Until Page Does Not Contain

text, timeout=None, error=None

等待直到界面中不包含某些文字,才进行下一步

Wait Until Page Does Not Contain  预约挂号

Wait Until Page Does Not Contain Element

locator, timeout=None, error=None

等待直到界面中不包含某些元素,才进行下一步

Wait Until Page Does Not Contain Element  [locator]

 

六、断言关键字(关键字中包含should的均是):

关键字参数说明
Element Attribute Should Matchlocator, attr_name, match_pattern, regexp=FalseVerify that an attribute of an element matches the expected criteria.
Element Name Should Belocator, expected检查元素的name属性
locator可以是resource-id,也可以是xpath
Element Should Be Disabledlocator, loglevel=INFO 
Element Should Be Enabledlocator, loglevel=INFO检查元素是否可用/可见
Element Should Be Visiblelocator, loglevel=INFO 
Element Should Contain Textlocator, expected, message= 
Element Should Not Contain Textlocator, expected, message= 
Element Text Should Belocator, expected, message= 
Element Value Should Belocator, expected 
Page Should Contain Elementlocator, loglevel=INFO检查页面包含某些元素
Page Should Not Contain Elementlocator, loglevel=INFO检查页面不包含某些元素
Page Should Contain Texttext, loglevel=INFO检查页面包含某些文字信息
Page Should Not Contain Texttext, loglevel=INFO检查页面不包含某些文字信息
Text Should Be Visibletext, exact_match=False, loglevel=INFO 
Xpath Should Match X Timesxpath, count, error=None, loglevel=INFO 

 

七、其他关键字

1.条件判断关键字

Run Keyword If

用法:

Run Keyword If

…ELSE IF   

…ELSE

实例:

1)用Run Keyword If执行单条语句时

Run Keyword If${patient}=="新患者"Click Elementcn.kidyn.qdmeical160:id/rb_new_patients
...ELSEClick Elementcn.kidyn.qdmeical160:id/rb_old_patients

2)用Run Keyword If执行多条语句时,在需要执行多条语句的if或else if或else后,增加关键字:Run Keywords

Run Keyword If${newcount}<=${totalmoney}Run Keywords充值-数据库${userPhone}
 ...ANDClick Elementcn.kidyn.qdmeical160:id/btn_top_
...ELSElog当前账户余额为:${count} 


2.For循环关键字

关键字:For

实例:

1)For循环单独使用时

 

2)For循环嵌套Run Keyword If语句,退出循环

 

3.检查某关键字的返回状态

关键字:Run Keyword And Return Status

返回值:布尔值,True False

实例   :通常和Run Keyword If关键字搭配使用       

${isMessage}Run Keyword And Return StatusWait Until Page Contains Element[locator]
Run Keyword If${isMessage}do something 

 


 

含义  :判断当前界面中是否存在取消按钮;如果存在,则do something

 

健康160:cn.kidyn.qdmeical160

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值