Appium学习笔记汇总

Appium原理:

  原理图:

appium自动化架构借鉴了selenium,上面这幅图包含三个模块 1.自动化程序(appium客户端) 2.AppiumServer 3.移动设备

  • 自动化程序 

    由测试人员编写的脚本,实现具体的手机自动化功能

    通过客户端,出具体的指令控制手机

  • AppiumServer

    Appium Server 是 Appium 组织开发的程序,它负责管理手机自动化环境,并且转发 自动化程序的控制指令给手机,并且转发 手机给 自动化程序的响应消息。

  • 移动设备

    接收处理自动化指令

 

Appium定位元素:

1.界面元素查看工具:

  uiautomaterviewer   (SDK目录 tools\bin) 不太好使,appium inspector(可以直接验证表达式能否定位到元素)

2.定位元素的方法:

  根据id,与web自动化不同 这里的id 指的是resource-id

  根据class name  可以选择一个或多个

  根据accessibility id  查询界面的元素要以后content-desc属性

  根据xpath 语法 #selenium 中xpath表达式中每个节点名是html 的tagname appium每个节点名是元素的class属性值ji

  UIAutomator:

    根据id,classname,xpath这些方法选择元素,其实底层都是利用了安卓uiautomator框架的api功能实现的,参考 这里的谷歌安卓官方文档介绍: https://developer.android.google.cn/training/testing/ui-automator

主要是通过UiSelector这个类里面的方法实现元素定位的,例如:

code = 'new UiSelector().text("热门").className("android.widget.TextView")'
ele = driver.find_element_by_android_uiautomator(code)
ele.click()

3.元素操作:

  1.click 点击

  2.tap 点按 ----根据坐标点击  driver.tap([position],time) time表示点按停留时间,长了就变长按了

  3.send_keys()

  4.webelment.text 获取界面文本信息

  5.driver.swipe(start_x = x1,start_y = y1,end_x=x2,end_y=y2,duration=800) 

  6.driver.press_keycode(AndroidKey.ENTER) 按键 #from appium.webdriver.extensions.android.nativekey import AndroidKey

  7.driver.open_notifications() #查看通知栏

  8.长按、双击、移动 

   Appium的 TouchAction 类提供了更多的手机操作方法,比如:长按、双击、移动参考源代码中的注释 https://github.com/appium/python-client/blob/master/appium/webdriver/common/touch_action.py 比如,下面就是一个长按的例子

from appium.webdriver.common.touch_action import TouchAction
# ...
actions = TouchAction(driver)
actions.long_press(element)
actions.perform()

 

4.内嵌网页自动化

  参考http://www.python3.vip/tut/auto/appium/04/

 

posted @ 2020-08-16 14:37  阿zZ泽  阅读(73)  评论(0)    收藏  举报