Appium关键字

发表于:2018-10-19 10:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:博客园

  *** 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}

   上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号