- 1 LuckyFrame使用手册
- 2 环境搭建
- 2.1 环境准备
- 2.2 数据库安装配置
- 2.3 基础数据初始化(升级)
- 2.4 Gitee&Github使用说明
- 2.5 导入项目
- 2.6 项目配置
- 2.7 项目部署
- 3 使用说明
- 3.1 系统介绍
- 3.2 语法手册
- 3.2.1 测试驱动(接口)自动化语法说明
- 3.2.2 Web UI自动化语法说明
- 3.2.3 移动端自动化语法说明
- 3.2.4 HTTP&Socket模板自动化语法说明
- 3.2.5 步骤动作关键字
- 4 示例手册
- 4.1 API接口自动化示例
- 4.2 APP自动化示例
- 5 常见问题&解决办法
- 5.1 服务端Web常见问题
- 5.2 客户端常见问题
移动端自动化语法说明
- 2018-03-15 16:57:42
- admin
- 27477
- 最后编辑:Seagull 于 2020-11-25 18:40:17
1:客户配置移动端自动化
在客户端项目的根目录下,有一个appium_config.properties的配置文件,在其中对客户端即将运行的移动端自动化相关配置项进行修改。
另:因为平台集成的是APPIUM自动化框架,所以必须在客户端的环境自己先行搭建环境,搭建步骤可以参考文章: 《APPIUM自动化测试环境搭建实践》
2:关键字语法结构
包|定位路径: 语法结构 属性=对应值 示例:xpath=.//*[@id='username'] 元素在页面中的定位路径,定位属性支持请参考下面内容,如果操作不涉及页面元素,此栏为空。
id | name | xpath | linktext | tagname | cssselector | androiduiautomator |
classname | partiallinktext | accessibilityid | iosclasschain | iosnspredicate | iosuiautomation |
|
方法|操作:自动联想出Appium封装好的操作语法
预期结果:语法结构 check(属性=对应值) 示例:check(xpath=.//*[@id='username']) 此方法用来检查步骤动作执行完成后,检查对应的元素是否存在。
示例:
3:其他关键字语法结构
支持与接口自动化相同关键字语法,写法一样,如:参数传递、模糊匹配预期结果步骤间休眠等,请参考接口自动化的章节,此处不再赘述。
4:移动端用例调用接口用例
当你的移动端用例需要调用接口用例的时候,提供一种runcase的方式,在【方法|操作】列选择runcase,在【参数】列输入接口用例的编号就可以了。
5:元素操作语法
语法结构:动作(方法|操作) 操作值(参数)
示例:sendKeys(方法|操作) username(参数)
下拉框类
selectbyvisibletext | 通过下拉框的文本 |
selectbyvalue |
通过下拉框的 VALUE 属 |
selectbyindex |
通过下拉框的 index 属性,从 0 开始计数 |
isselect | 判断是否已经被选择,同用于单选、复选框 |
获取对象属性值类
gettext | 获取文本属性 |
gettagname | 获取标签类型 |
getattribute | 获取指定属性值 |
getcssvalue | 获取CSS属性值 |
对象动作类
click | 点击 |
sendkeys | 输入 |
clear | 清除输入框 |
longpresselement | 长按页面指定元素,带参,单位:秒 |
isenabled | 是否可用 |
isdisplayed | 是否可见 |
exjsob | 针对对象执行JS脚本 |
主对象类(无定位属性)
getcontexthandles | 获取指定context的handle,带参,指定第几个窗口 |
exjs | 执行js脚本 |
keycode | 安卓模拟手机键盘发送,带参,按键代码 |
hidekeyboard | 安卓隐藏手机键盘 |
gotocontext | 跳转窗口(句柄),使用getcontexthandles传参值 |
getcontext | 获取当前页面context |
gettitle | 获取当前页面title |
swipeup |
手指向上滑动 参数格式: 持续时间(秒)|次 |
swipedown |
手指向下滑动 参数格式: 持续时间(秒)|次数 |
swipeleft |
手指向左滑动 参数格式: 持续时间(秒)|次 |
swiperight |
手指向右滑动 参数格式: 持续时间(秒)|次数 |
swipepageup |
拖动页面向上滑动 参数格式: 持续时间(秒)|次 |
swipe
pagedown |
拖动页面向下滑动 参数格式: 持续时间(秒)|次数 |
swipe
pageleft |
拖动页面向左滑动 参数格式: 持续时间(秒)|次 |
swipe
pageright |
拖动页面向右滑动 参数格式: 持续时间(秒)|次数 |
longpressxy |
长按指定坐标 参数格式: X坐标|Y坐标|持续时间(秒 |
pressxy |
点击指定坐标 参数格式: X坐标|Y坐标 |
Tapxy |
轻击指定坐标 参数格式: X坐标|Y坐 |
jspressxy |
JS实现方式点击指定坐标 参数格式: X坐标|Y坐标 |
moveto |
在屏幕指定坐标之间滑动 参数格式: X1,Y1| X2,Y2| X3,Y3| |
timeout |
设置全局页面加载&元素出现最大等待时间 参数单位:秒 |
screenshot | 对当前屏幕进行截图 |
exAdbShell |
执行安卓adb命令 |
弹出框类
alertaccept | 点击 OK |
alertdismiss | 点击取消 |
alertgettext | 获取弹出框 TEXT |
Calling AppiumDriver.findElement() with args: ["css selector","#tvOpen","82aa9647-c876-46af-9e0a-7d5897ebe097"]
[BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
我明明写的是id=tvOpen,在appium日志中打印的这个??
如:id=元素resourceid,Locator Strategy 'css selector' is not supported for this session
xpath=元素xpath,An element could not be located on the page using the given search parameters
等等,麻烦提供一下各种元素定位的例子,谢谢。
id=edCode click
id=edCode androidkeycode KEYCODE_ENTER