AppiumLibrary用户关键字

*** Settings ***
Library           AppiumLibrary
Library           AutoItLibrary
Library           os

*** Keywords ***
xpath应该匹配次数
    [Arguments]    ${xpath}    ${count}
    Xpath Should Match X Times    ${xpath}    ${count}

上传文件
    [Arguments]    ${path}    ${data}    ${encode}=base64
    Push File    ${path}    ${data}    ${encode}

元素不应该包含文本
    [Arguments]    ${locator}    ${expected}    ${msg}=
    Element Should not Contain Text    ${locator}    ${expected}    ${msg}

元素值应该是
    [Arguments]    ${locator}    ${expected}
    Element Value Should Be    ${locator}    ${expected}

元素名应该是
    [Arguments]    ${path}    ${name}
    Element Name Should Be    ${path}    ${name}

元素属性应该匹配
    [Arguments]    ${locator}    ${attr_name}    ${match_pattern}    ${regx}=False
    Element Attribute Should Match    ${locator}    ${attr_name}    ${match_pattern}    ${regx}

元素应该包含文本
    [Arguments]    ${locator}    ${expected}    ${msg}=None
    Element Should Contain Text    ${locator}    ${expected}    ${msg}

元素应该失效
    [Arguments]    ${locator}    ${level}=INFO
    Element should be disabled    ${locator}    ${level}

元素应该有效
    [Arguments]    ${locator}    ${level}=INFO
    Element should be enabled    ${locator}    ${level}

元素文本应该是
    [Arguments]    ${locator}    ${expected}    ${msg}=None
    Element Text Should Be    ${locator}    ${expected}    ${msg}

关闭当前应用
    Close Application

关闭所有应用
    Close All Applications

切换应用
    [Arguments]    ${index_or_alias}
    Switch Application    ${index_or_alias}

切换页面内容
    [Arguments]    ${webview}
    Switch To Context    ${webview}

卸载应用
    [Arguments]    ${application_id}
    Remove Application    ${application_id}

后台运行
    [Arguments]    ${sec}
    Background App    ${sec}

向上滚动
    [Arguments]    ${locator}
    Scroll Up    ${locator}

向下滚动
    [Arguments]    ${locator}
    Scroll Down    ${locator}

失败后运行关键字
    [Arguments]    ${keyword}
    [Documentation]    Example:    # Disables run-on-failure functionality and stores the previous kw name in a variable.    # Restore to the previous keyword.
    ...
    ...    Register Keyword To Run On Failure \ \ \ Log Source
    ...    \ \ \ \ \ \ \ # Run `Log Source` on failure.
    ...
    ...    ${previous kw}=
    ...    Register Keyword To Run On Failure \ \ Nothing
    ...
    ...
    ...    Register Keyword To Run On Failure \ \ \ \ ${previous kw} \ \ \     Register Keyword To Run On Failure    ${keyword}

打印资源
    [Arguments]    ${level}
    Log Source    ${level}

打开URL
    [Arguments]    ${url}
    [Documentation]    Example:
    ...
    ...    打开应用
    ...    http://localhost:4755/wd/hub \ platformName=iOS \ platformVersion=7.0
    ...    deviceName=‘iPhone Simulator‘
    ...    browserName=Safari
    ...
    ...    打开URL \ http://m.webapp.com
    Go To URL    ${url}

打开应用
    [Arguments]    ${url}    ${platformName}    ${version}    ${deviceName}    ${app}
    [Documentation]    打开应用 ${url} ${platformName} ${version} \ \ ${devicename} ${app} @{args}
    ...
    ...    例如:
    ...
    ...    打开应用 http://localhost:4723/wd/hub Android 5.1.1 5e25d20d ${CURDIR}${/}app${/}fft.apk
    ...
    ...    ${url} 是用于访问应用的地址,一般是固定的。 url 和 端口可以根据具体地址修改。
    ...    ${version} \ 是安卓的版本
    ...    ${devicename} 是手机的UDID, 可以打开cmd 然后用 adb devices -l \ 看到设备列表。
    ...    UDID 是看到的第一列的内容,真机是一串字符串,模拟器是 \ ip:port \ 的形式
    ...    ${app} 是apk 存放的路径 ${CURDIR} 系统变量,取得当前脚本路径。 ${/} 系统变量 ‘/‘
    open application    ${url}    platformName=${platformName}    platformVersion=${version}    deviceName=${deviceName}    app=${app}

按关键字
    [Arguments]    ${keycode}    ${metastate}=None
    Press Keycode    ${keycode}    ${metastate}

摇动手机
    Shake

放大元素
    [Arguments]    ${locator}    ${percent}=200%    ${step}=1
    Zoom    ${locator}    ${percent}    ${step}

敲击元素
    [Arguments]    ${locator}
    Tap    ${locator}

横屏
    [Documentation]    手机设置横屏
    LANDSCAPE

清除文本
    [Arguments]    ${locator}
    Clear Text    ${locator}

滑动
    [Arguments]    ${start_x}    ${start_y}    ${end_x}    ${end_y}
    swipe    ${start_x}    ${start_y}    ${end_x}    ${end_y}

滚动
    [Arguments]    ${start_locator}    ${end_locator}
    [Documentation]    从一个元素滚动到另一个元素
    Scroll    ${start_locator}    ${end_locator}

点击元素
    [Arguments]    ${locator}
    Click Element    ${locator}

点击元素坐标
    [Arguments]    ${coordinate_x}    ${coordinate_y}
    Click Element At Coordinates    ${coordinate_x}    ${coordinate_y}

点击固定点
    [Arguments]    ${x}    ${y}    @{args}
    Click A Point    ${x}    ${y}    @{args}

点击按钮
    [Arguments]    ${index_or_name}
    Click Button    ${index_or_name}

点击文本
    [Arguments]    ${text}    ${exact_match}=false
    [Documentation]    点击匹配到文本的元素:
    ...
    ...    点击文本 "text"
    ...    点击文本 "text" True
    ...
    ...    默认模糊匹配所有元素,可以设置成精确匹配。
    ...    如果可以匹配到两个或两个以上的元素,那么需要用 click Element 元素,去处理。
    Click Text    ${text}    ${exact_match}

睡眠
    [Arguments]    ${sec}
    sleep    ${sec}

竖屏
    PORTRAIT

等待页面元素出现
    [Arguments]    ${locator}    ${timeout}=100    ${err}=None
    Wait Until Page Contains Element    ${locator}    ${timeout}    ${err}

等待元素出现文本
    [Arguments]    ${text}    ${timeout}=10    ${err}=None
    Wait Until Page Contains    ${text}    ${timeout}    ${err}

等待页面不包含元素
    [Arguments]    ${locator}    ${timeout}=10    ${err}=None
    Wait Until Page Does Not Contain Element    ${locator}    ${timeout}    ${err}

等待页面不包含文本
    [Arguments]    ${text}    ${timeout}=10    ${err}=None
    Wait Until Page Does Not Contain    ${text}    ${timeout}    ${err}

缩小元素
    [Arguments]    ${locator}    ${percent}=200%    ${step}=1
    Pinch    ${locator}    ${percent}    ${step}

获取Appium超时时间
    ${timeout}    Get Appium Timeout
    [Return]    ${timeout}

获取Web元素
    [Arguments]    ${locator}
    [Documentation]    获取匹配的定位器的第一个元素:
    ...
    ...    ${element} 获取Web元素 id=name
    ...    点击元素 ${element}
    ${element}    Get Webelement    ${locator}
    [Return]    ${element}

获取元素坐标
    [Arguments]    ${locator}
    ${location}    Get Element Location    ${locator}
    [Return]    ${location}

获取元素尺寸
    [Arguments]    ${locator}
    ${size}    Get Element Size    ${locator}
    [Return]    ${size}

获取元素属性
    [Arguments]    ${locator}    ${name_or_value}
    [Documentation]    获取元素属性:(name 或者 value)
    ...    ${val} \ 获取元素属性 ${locator} ${name_or_value}
    ...
    ...    例如:
    ...    ${val} 获取元素属性 id=xxxx name
    ...    ${val} 获取元素属性 id=xxxx value
    ${val}    Get Element Attribute    ${locator}    ${name_or_value}
    [Return]    ${val}

获取匹配xpath数
    [Arguments]    ${xpath}
    [Documentation]    例如:
    ...
    ...    ${count} \ \ \ 获取匹配xpath数 \ \ //android.view.View[@text=‘Test‘]
    ${count}    Get Matching Xpath Count    ${xpath}
    [Return]    ${count}

获取可见文本
    ${contents}    Get Contexts
    [Return]    ${contents}

获取当前文本
    ${context}    Get Current Context
    [Return]    ${context}

获取所有web元素
    [Arguments]    ${locator}
    [Documentation]    @{element} 获取所有web元素 id=my_element
    ...    点击元素 @{element}[2]
    @{element}    Get Webelements    ${locator}
    [Return]    @{element}

获取文件
    [Arguments]    ${file_path}    ${decode}=False
    pull file    ${file_path}    ${decode}

获取文件夹
    [Arguments]    ${folder_path}    ${decode}=False
    Pull Folder    ${folder_path}    ${decode}

获取文本
    [Arguments]    ${locator}
    [Documentation]    获取符合元素的文本:
    ...    ${text} \ 获取文本 \ //*[contains(@text,‘foo‘)]
    ${text}    Get Text    ${locator}
    [Return]    ${text}

获取网络连接情况
    ${stat}    Get Network Connection Status
    [Return]    ${stat}

获取资源
    ${source}    Get Source
    [Return]    ${source}

设置Appium超时
    [Arguments]    ${sec}
    Set Appium Timeout    ${sec}

设置网络连接状态
    [Arguments]    ${sec}
    Set Network Connection Status    ${sec}

输入值
    [Arguments]    ${locator}    ${val}
    Input Value    ${locator}    ${val}

输入密码
    [Arguments]    ${path}    ${passwd}
    Input Password    ${path}    ${passwd}

输入文本
    [Arguments]    ${path}    ${text}
    Input Text    ${path}    ${text}

返回
    [Documentation]    浏览器返回上一个的页面
    Go Back

重置应用
    Reset Application

锁屏
    [Arguments]    ${sec}
    [Documentation]    这个方法只使用于IOS
    Lock    ${sec}

长按元素
    [Arguments]    ${locator}
    Long Press    ${locator}

长按关键字
    [Arguments]    ${keycode}    ${metastate}=None
    [Documentation]    keycode 可以在这个网址里面找到:
    ...    http://developer.android.com/reference/android/view/KeyEvent.html.
    ...
    ...    Args:
    ...    \ \ \ \ - keycode - the keycode to be sent to the device
    ...    \ \ - metastate - meta information about the keycode being sent
    Long Press Keycode    ${keycode}    ${metastate}

隐藏键盘
    Hide Keyboard

页面不应该包含元素
    [Arguments]    ${locator}    ${lvl}=INFO
    Page Should Not Contain Element    ${locator}    ${lvl}

页面不应该包含文本
    [Arguments]    ${locator}    ${lvl}=INFO
    Page Should Not Contain Text    ${locator}    ${lvl}

页面应该包含元素
    [Arguments]    ${locator}    ${lvl}=INFO
    Page Should Contain Element    ${locator}    ${lvl}

页面应该包含文本
    [Arguments]    ${locator}    ${lvl}=INFO
    Page Should Contain Text    ${locator}    ${lvl}

页面截图
    [Arguments]    ${filename}=
    Capture Page Screenshot    ${filename}
时间: 2024-10-19 08:08:12

AppiumLibrary用户关键字的相关文章

Robot Framework--06 用户关键字User Keyword

转自:http://blog.csdn.net/tulituqi/article/details/7906130 在我们做自动化案例的时候,用的最多的主要是用户关键字.说到关键字,大体上可以分为测试库关键字(或叫系统关键字)和用户关键字,前者一般都是通过加载Library得到的,而用户关键字一般都是通过加载Resouce得到的. 以之前的这个case为例: 图中的Import Variables和log都是测试库关键字,而搜索测试这个就是用户关键字,只要RIDE的版本高一些,就能看出他们的颜色是

创建资源和用户关键字

一.测试套件下创建用户关键字 1.创建关键字测试套件右击->点击new user keyword,然后输入name,点击OK保存. 2.在用户关键字的edit点击settings,然后输入Arguments 参数为:${number} ,这就像定函数的输入参.可以设置多个变量,之间用"|"分隔.添加循环的用例,循环的次数为:${number} 3.创建好之后在用例中就可以直接使用这个关键字了.使用了循环的方法,并且入参${number}=8 二.创建资源后添加关键字 上面创建用户

贯穿RobotFramework框架 - 关键字(一) 最全面的疏理

在RF中,关键字是一个非常重要的存在.想做任何事情,都是通过关键字来实现的. 这篇文章对RobotFramework中的关键字做个整理.大概分为以下几点内容: 1.什么是关键字 2.关键字来自哪里.有哪些类型 3.如何使用关键字 4.如何定义用户关键字 5.资源文件使用 1.什么是关键字 总结一句话:一个关键字实现了单一的功能. 使用一个关键字,就等于是去使用了一个功能. 例如,在生活中,做饭使用了厨房,睡觉使用了床,出行使用了公交等等. 一样的道理 ,那在RF中,输出文本使用了关键字:log:

Appium+Robotframework实现iOS应用的自动化测试-5:一个简单的例子

万事具备,只欠编码! 下面看一个简单的示例,这个示例验证常见的登录功能.这个例子的应用是我所在的公司正在研发的,还没有正式上线,就不提供下载路径了.登录功能是很多应用都用的,这个大家都知道是怎样的功能. 首先请看resource.txt文件的代码: *** Settings *** Library AppiumLibrary *** Variables *** ${REMOTE_URL} http://192.168.1.6:4723/wd/hub ${PLATFORM_NAME} iOS ${

Robot Framework测试框架用例脚本设计方法

Robot Framework介绍 Robot Framework是一个通用的关键字驱动自动化测试框架.测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储.通过测试库中实现的关键字驱动被测软件.    Robot Framework灵活且易于扩展.它非常适合测试有不同接口的复杂软件:用户接口.命令行,Web服务,专有的编程接口等. Robot Framework是开源软件,通用的测试库源码安装包和文档等可通过http://robotframework.org获取.Robot Fr

软件测试知识点汇总目录(持续更新)

个人在工作之余通过word文档长期持续更新工作中需要涉及到的一些理论和技术知识.所谓好记记性,不如乱笔头.根据工作年限和职位的变化,以及就职公司参与的产品或者项目所涉及到的测试方面的技能不一样,会存在有些之前的技能不经常使用,会导致生疏的现象.虽然不至于归零,但是一旦需要使用的时候,有一个相对比较完整规范的文档来应急阅读来回顾其使用等是很有帮助的.比在网上搜索出来的相关零散的不完整的知识点方便的多. 文档创建年限不是很长,有很多知识项没有写入文档或者还没有来得及编写,需要在后续持续更新.文档编写

开放源码的微微信.NET 0.8 版发布了

微微信.NET 0.8 版发布了     A.源码应用范围:         未认证的和经过认证的微信订阅号.微信服务号均可使用,本源码的每一个模块都提供完全的 ASP.NET C#源代码,绝对不含封装的DLL , 我们提供的是一套不断更新的源码,需要用户有一些.NET的基础.     B.微信方面功能     01  欢迎消息:微信被关注后用户消息自动回复欢迎消息:     02  关键词回复:微信用户关键字的自动文本.图文.音乐形式回复设置:     03  签到积分:微信的用户每日签到和积

Keil IDE指南.

Keil IDE指南(转载) 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例,详细的写一下MDK的设置.界面.工具.可能会有些杂乱,但我想所涉及的东西都是最常用的:可能不是那么的严谨清晰,我想谁也没把我期望成专家!哈,有问题欢迎留言.正式开始.   首先启动MDK.当然要先安装好MDK,如果找不到在哪里下载,可以翻翻我以前的博文.启动后的MDK

Keil MDK从未有过的详细使用讲解

转自博客:http://blog.csdn.net/zhzht19861011/article/details/5846510 这博主关于MDK 的使用的文章,写的得TM的好  TM的实用! 真心收藏! 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例,详细的写一下MDK的设置.界面.工具.可能会有些杂乱,但我想所涉及的东西都是最常用的:可能不是