Appium基础

Appium自动化测试

介绍

中文文档网址:http://appium.io/docs/cn/about-appium/intro/

1、启动项配置

参数参考:https://blog.csdn.net/ljl6158999/article/details/80594521

ADB常用命令

命令 作用
adb connect 10.1.22.95 链接设备
adb devices 查看设备
adb kill-server 杀死进程
adb start-server 启动进程
adb pull 手机路径 电脑路径 手机文件传递pc
adb push 电脑路径 手机路径 pc文件传递手机

基础操作api

获取应用包名应用名

adb shell "dumpsys window | grep mFocusedApp"

1、应用内跳转页面

driver.start_activity("包名","应用名")

2、获取应用包名 | 应用名

print(driver.current_package)
print(driver.current_activity)

3、关闭 close_app() | 退出 quit()

driver.close_app()
driver.quit()

4、判断app是否安装

if driver.is_app_installed("com.aw.project.aldi"):
    driver.remove_app("com.aw.project.aldi")
else:
    driver.install_app(r"D:\DiskTop\ALDI_ACO_V8.7.0.6.apk")

5、进入后台返回前台

driver.backgroud_app("放置后台时间,单位秒")

元素定位api

1、元素定位

driver.find_element_by_id()
driver.find_element_by_class_name()
driver.find_element_by_xpath()
driver.find_elements_by_id()
driver.find_elements_by_class_name()
driver.find_elements_by_xpath()

2、显示等待 | 隐式等待

隐式等待

driver.implicitly_with(时间,单位秒)

显示等待

WebDriverWait(driver, 超时时间, 间隔执行).until(lambda x:x.element)

元素操作api

1、点击 | 输入 | 清空

  • send_keys()默认不输入中文,使用时需配置参数

    desired_caps['unicodeKeyboard'] = True
    desired_caps['resetKeyboard'] = True
    
element.click()
element.send_keys(value)
element.clear()

2、获取文本 | 获取位置 | 获取大小

element.text
element.location
element.size

3、获取元素属性值

  • value="text" 返回 text 值
  • value="name" 返回 content-desc/text 值
  • value="className" 返回 class 值,api=>18支持
  • value="resourceid" 返回 resource-id 值,api=>18支持
element.get_attribute("enable")
element.get_attribute("text")
element.get_attribute("name")
element.get_attribute("className")
element.get_attribute("resourcedId")

4、滑动 swipe() | scroll() | drage_and_drop()

driver.swipe(x,y,x1,y1,持续时间:d.单位毫秒)
driver.scroll(element1,element2)
driver.drag_and_drop(element1,element2)

高级手势TouchAction

1、轻敲 tap()

TouchAction(driver).tap(element).perform()
TouchAction(driver).tap(x=x, y=y, count=1).perform()

2、按下 press()| 抬起 release()

TouchAction(driver).press(element | x,y).perform()
TouchAction(driver).release().perform()

按下后抬起

TouchAction(driver).press(element | x,y).release().perform()

3、等待 wait() | 长按 long_press()

TouchAction(driver).press(element | x,y).wait(2).perform()
TouchAction(dricer).long_press(element,duration=2000).perform()

4、移动 move_to()

TouchAction(driver).press(100,100).move_to(100,200).perform()

手机操作API

1.获取设备分辨率 get_window_size()

driver.get_window_size()		#{'height': 2560, 'width': 1440}
driver.get_window_size()['width']	# 1440

2、手机截图 get_screenshot_as_file()

driver.get_screenshot_as_file('fileName.png')

3、获取网络属性 network_connection()

Value (Alias)      | Data | Wifi | Airplane Mode
-------------------------------------------------
0 (None)           | 0    | 0    | 0
1 (Airplane Mode)  | 0    | 0    | 1
2 (Wifi only)      | 0    | 1    | 0
4 (Data only)      | 1    | 0    | 0
6 (All network on) | 1    | 1    | 0

from appium.webdriver.connectiontype import ConnectionType

class ConnectionType(object):
    NO_CONNECTION = 0
    AIRPLANE_MODE = 1
    WIFI_ONLY = 2
    DATA_ONLY = 4
    ALL_NETWORK_ON = 6
driver.network_connection()
driver.set_network_connection(int:i)

4、发送键到设备 press_keycode()

https://blog.csdn.net/feizhixuan46789/article/details/16801429

code name Num
KEYCODE_CALL 拨号键 5
KEYCODE_ENDCALL 挂机键 6
KEYCODE_HOME 按键Home 3
KEYCODE_MENU 菜单键 82
KEYCODE_BACK 返回键 4
KEYCODE_SEARCH 搜索键 84
KEYCODE_CAMERA 拍照键 27
KEYCODE_FOCUS 拍照对焦键 80
KEYCODE_POWER 电源键 26
KEYCODE_NOTIFICATION 通知键 83
KEYCODE_MUTE 话筒静音键 91
KEYCODE_VOLUME_MUTE 扬声器静音键 164
KEYCODE_VOLUME_UP 音量增加键 24
KEYCODE_VOLUME_DOWN 音量减小键 25
driver.press_keycode(keycode)

5、操作通知栏

  • 打开通知栏

    driver.open_notifications()
    
  • 关闭通知栏

    官方未提供关闭api,可使用返回键或滑动关闭
    driver.press_keycode(4)
    
posted @ 2021-02-25 17:47  LForest  阅读(94)  评论(0编辑  收藏  举报