前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化-Appium-常用API(Python版)

自动化-Appium-常用API(Python版)

作者头像
wangmcn
发布2022-07-25 13:23:41
1.4K0
发布2022-07-25 13:23:41
举报
文章被收录于专栏:AllTests软件测试

常用API

1、锁屏

锁屏多少秒后解锁,仅支持IOS。

driver.lock(5)

2、打开通知栏

打开通知栏,仅支持Android。

driver.open_notifications()

3、安装应用

在设备上安装应用。

driver.install_app('appPath')

4、卸载应用

卸载设备上的应用。

driver.remove_app('com.example.android.apis')

5、启动应用

启动应用。

driver.launch_app()

6、关闭应用

关闭应用。

driver.close_app()

7、退出驱动程序

退出驱动程序并关闭所有相关窗口。

driver.quit()

8、检查应用是否已安装

检查应用是否已安装,返回True或False。

driver.is_app_installed('com.example.android.apis')

9、将应用切换至后台

将当前的应用切换到后台,然后可以让其在指定时间内回到前台。

# 置于后台,持续5秒

driver.background_app(5)

10、切换上下文

切换上下文(context)。

driver.switch_to.context("webview")

11、列出当前上下文

返回当前会话的当前上下文(context)。

driver.context

driver.current_context

12、列出所有上下文

列出当前会话中所有的上下文(context)。

context可以理解为可进入的窗口,如果是native则为native_app,如果是webview为对应webview。

driver.contexts

13、获取应用的字符串

获得应用的字符串。

driver.app_strings

14、隐藏键盘

隐藏键盘。

driver.hide_keyboard()

15、按键

给设备发送按键事件,仅支持Android。按键值参考按键码列表。

driver.keyevent(4)

16、按住按键

给设备发送一个按键事件,仅支持Android。按键值参考按键码列表。

driver.press_keycode(4)

17、长按住按键

给设备发送一个长按住按键事件,仅支持Android。按键值参考按键码列表。

driver.long_press_keycode(4)

18、获取当前Package

获取在设备上运行的当前包(package),仅支持Android。

driver.current_package

19、启动Activity

在当前应用打开一个activity,或者新打开一个应用并启动一个acticity,仅支持Android。

driver.start_activity("app_package", "app_activity")

20、获取当前Activity

获取当前的activity,仅支持Android。

driver.current_activity

21、等待指定Activity

等待指定的activity出现直到超时,interval为扫描间隔1秒,即每隔几秒获取一次当前的activity。返回的True或False,仅支持Android。

driver.wait_activity(activity, timeout, interval=1)

driver.wait_activity('.activity.xxx',5,2)

22、单击元素

单击元素。

driver.find_element_by_name("name").click()

23、滑动

从(startx,starty)滑到(endx,endy),分duration步滑,滑动时间为毫秒。

driver.swipe(startx, starty, endx, endy, duration)

driver.swipe(100, 100, 100, 400, 1000)

24、快速滑动

按住(startx,starty)点后快速滑动至(endx,endy)点。

flick方法和swipe方法一样需要确定起点和终点坐标,只是没有时间参数。

driver.flick(startx, starty, endx, endy)

driver.flick(100, 100, 100, 400)

25、拖动

将元素el1拖到目标元素el2。

driver.drag_and_drop(el1,el2)

26、缩小

在元素上执行模拟双指捏(缩小操作)。

driver.pinch(element)

27、放大

在元素上执行放大操作。

driver.zoom(element)

28、滚动

从元素el1滚动至元素el2。

driver.scroll(el1, el2)

29、输入

在元素中输入。

element.send_keys("APPIUM")

有时需要直接在设备上设置元素的值。可用方法driver.set_value或element.set_value。

el = driver.find_elements_by_id("id")

driver.set_value(el,'APPIUM')

el.set_value('APPIUM')

30、清除

如果此元素是文本元素,则将清除该值。

element.clear()

31、摇动

模拟摇晃(摇一摇)设备的操作。

driver.shake()

32、重置

重置应用(类似删除应用数据)。

driver.reset()

33、截图

截取当前窗口的截图。

driver.get_screenshot_as_file('/Screenshots/foo.png')

34、模拟手指点击

模拟手指点击(最多五个手指),可设置按住时间长度(毫秒)。

driver.tap([(x,y),(x1,y1)],500)

driver.tap([(100, 20), (100, 60), (100, 100)], 500)

35、触控操作(TouchAction)

TouchAction的原理是将一系列的动作放在一个链条中,然后将该链条传递给服务器,服务器接收到该链条后,解析各个动作,逐个执行。

代码语言:javascript
复制
# 引用类from appium.webdriver.common.touch_action import TouchAction

# press按压操作
# 按压元素
TouchAction(driver).press(WebElement el)
# 按压点坐标(X,Y)
TouchAction(driver).press(x=X,y=Y)
# 按压在元素el的左上角的x坐标偏移X单位,y坐标偏移Y单位
TouchAction(driver).press(WebElement el,x=X,y=Y)

# long_press长按操作,相比press,long_press多了一个参数duration,以毫秒为单位(1000为1秒)
TouchAction(driver).long_press()
# 长按元素
TouchAction(driver).long_press(WebElement el)
# 长按点坐标(X,Y)
TouchAction(driver).long_press(x=X,y=Y,int=1000)
# 长按在元素el的左上角的x坐标偏移X单位,y坐标偏移Y单位
TouchAction(driver).long_press(WebElement el,x=X,y=Y,int=1000)

# tap点击操作
# 点击元素
TouchAction(driver).tap(WebElement el)
# 点击坐标(X,Y)
TouchAction(driver).tap(x=X,y=Y)
# 点击在元素el的左上角的x坐标偏移X单位,y坐标偏移Y单位
TouchAction(driver).tap(WebElement el,x=X,y=Y)

# move_to移动操作
# 以el为目标,从另一个点移动到该目标上
TouchAction(driver).move_to(WebElement el)
# 以(X,Y)点为目标,从另一个点移动到该目标上
TouchAction(driver).move_to(x=X,y=Y)
# 以元素el的左上角为基准,x轴向右移动X单位,y轴向下移动Y单位,以该点为目标,从另一个点移动到该点上
TouchAction(driver).move_to(WebElement el,x=X,y=Y)

# wait暂停操作,单位为毫秒
# 等待ms毫秒
TouchAction(driver).wait(ms)

# release释放操作,代表该系列动作的一个结束标志
TouchAction(driver).release()

# perform执行该动作发送到服务器的命令操作
TouchAction(driver).perform()

# TouchAction示例
# 向下滑动
TouchAction(driver).press(x=170, y=430).wait(20).move_to(x=170, y=230).release().perform()

36、上传文件

把本地文件上传到设备上。

path = "/data/local/tmp/file.txt"

data = "some data for the file"

driver.push_file(path, data.encode('base64'))

37、下载文件

从设备上拉取文件到本地。

driver.pull_file('Library/AddressBook/AddressBook.sqlitedb')

38、下载文件夹

将设备上的文件夹下载到本地,一般远程文件为/data/local/tmp下的文件。

driver.pull_folder(path)

39、获取页面源码

获取当前页的源。

driver.page_source

40、获取元素文本值

返回元素的文本值。

driver.find_element_by_name("name").text

41、获取元素属性值

get_attribute("name"),获取content-desc或text(content-desc为空时会返回text)属性值。

get_attribute("text"),获取text属性值。

get_attribute("className"),获取class属性值。

get_attribute("resourceId"),获取resource-id属性值。

例如:

driver.find_element_by_name("name").get_attribute("text")

42、获取元素的tagName属性

返回元素的tagName属性。

driver.find_element_by_name("name").tag_name

43、返回元素是否被选中

可以用来检查一个复选框或单选按钮被选中。

driver.find_element_by_name("name").is_selected()

44、返回元素是否可用

返回元素是否可用,True或者False。

driver.find_element_by_name("name").is_enabled()

45、返回元素是否可见

元素是否对用户可见。

driver.find_element_by_name("name").is_displayed()

46、获取屏幕分辨率

获取当前窗口的宽度和高度。

driver.get_window_size()

47、设置屏幕分辨率

设置当前窗口的宽度和高度。

driver.set_window_size(800,600)

48、获取元素的大小

获取元素的大小(高和宽)。

driver.find_element_by_name("name").size

49、获取当前坐标位置

获取当前窗口的坐标(x,y)位置。

driver.get_window_position()

50、获取网络类型

获取网络类型(数值),仅支持Android。

driver.network_connection

51、设置网络类型

设置网络连接类型,仅支持Android。

driver.set_network_connection(type)

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

type参数:

NO_CONNECTION = 0

AIRPLANE_MODE = 1

WIFI_ONLY = 2

DATA_ONLY = 4

ALL_NETWORK_ON = 6

例如:

from appium.webdriver.connectiontype import ConnectionType

driver.set_network_connection(ConnectionType.AIRPLANE_MODE)

52、打开定位服务

打开安卓设备上的位置定位服务,仅支持Android。

driver.toggle_location_services()

53、设置设备经纬度

设置设备的经纬度。

纬度-字符串或数值(-90.0至90.00)

经度-字符串或数值(-180.0至180.0)

高度-字符串或数值

driver.set_location(纬度,经度,高度)

54、获取可用的输入法

获取Android设备可用的输入法,返回Package和Activity。

例如:com.android.inputMethod.latin/.LatinIME,仅支持Android。

driver.available_ime_engines

55、获取当前输入法Package和Activity

返回当前输入法的Package和Activity,例如:com.android.inputMethod.latin/.LatinIME,仅支持Android。

driver.active_ime_engine

56、检查是否有输入法服务活动

检查设备是否有输入法服务活动,返回True或者False,仅支持Android。

driver.is_ime_active()

57、激活指定输入法

激活Android设备中的指定输入法,设备可用输入法可以从available_ime_engines命令获取,仅支持Android。

driver.activate_ime_engine("com.android.inputmethod.latin /.LatinIME")

58、关闭输入法

关闭Android设备当前的输入法,仅支持Android。

driver.deactivate_ime_engine()

59、按键码列表

1、电话键

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

2、控制键

KEYCODE_ENTER (回车键) : 66

KEYCODE_ESCAPE (ESC键) : 111

KEYCODE_DPAD_CENTER (导航键 确定键) : 23

KEYCODE_DPAD_UP (导航键 向上) : 19

KEYCODE_DPAD_DOWN (导航键 向下) : 20

KEYCODE_DPAD_LEFT (导航键 向左) : 21

KEYCODE_DPAD_RIGHT (导航键 向右) : 22

KEYCODE_MOVE_HOME (光标移动到开始键) : 122

KEYCODE_MOVE_END (光标移动到末尾键) : 123

KEYCODE_PAGE_UP (向上翻页键) : 92

KEYCODE_PAGE_DOWN (向下翻页键) : 93

KEYCODE_DEL (退格键) : 67

KEYCODE_FORWARD_DEL (删除键) : 112

KEYCODE_INSERT (插入键) : 124

KEYCODE_TAB (Tab键) : 61

KEYCODE_NUM_LOCK (小键盘锁) : 143

KEYCODE_CAPS_LOCK (大写锁定键) : 115

KEYCODE_BREAK (Break/Pause键) : 121

KEYCODE_SCROLL_LOCK (滚动锁定键) : 116

KEYCODE_ZOOM_IN (放大键) : 168

KEYCODE_ZOOM_OUT (缩小键) : 169

3、基本键

KEYCODE_0 (按键'0') : 7

KEYCODE_1 (按键'1') : 8

KEYCODE_2 (按键'2') : 9

KEYCODE_3 (按键'3') : 10

KEYCODE_4 (按键'4') : 11

KEYCODE_5 (按键'5') : 12

KEYCODE_6 (按键'6') : 13

KEYCODE_7 (按键'7') : 14

KEYCODE_8 (按键'8') : 15

KEYCODE_9 (按键'9') : 16

KEYCODE_A (按键'A') : 29

KEYCODE_B (按键'B') : 30

KEYCODE_C (按键'C') : 31

KEYCODE_D (按键'D') : 32

KEYCODE_E (按键'E') : 33

KEYCODE_F (按键'F') : 34

KEYCODE_G (按键'G') : 35

KEYCODE_H (按键'H') : 36

KEYCODE_I (按键'I') : 37

KEYCODE_J (按键'J') : 38

KEYCODE_K (按键'K') : 39

KEYCODE_L (按键'L') : 40

KEYCODE_M (按键'M') : 41

KEYCODE_N (按键'N') : 42

KEYCODE_O (按键'O') : 43

KEYCODE_P (按键'P') : 44

KEYCODE_Q (按键'Q') : 45

KEYCODE_R (按键'R') : 46

KEYCODE_S (按键'S') : 47

KEYCODE_T (按键'T') : 48

KEYCODE_U (按键'U') : 49

KEYCODE_V (按键'V') : 50

KEYCODE_W (按键'W') : 51

KEYCODE_X (按键'X') : 52

KEYCODE_Y (按键'Y') : 53

KEYCODE_Z (按键'Z') : 54

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、锁屏
  • 2、打开通知栏
  • 3、安装应用
  • 4、卸载应用
  • 5、启动应用
  • 6、关闭应用
  • 7、退出驱动程序
  • 8、检查应用是否已安装
  • 9、将应用切换至后台
  • 10、切换上下文
  • 11、列出当前上下文
  • 12、列出所有上下文
  • 13、获取应用的字符串
  • 14、隐藏键盘
  • 15、按键
  • 16、按住按键
  • 17、长按住按键
  • 18、获取当前Package
  • 19、启动Activity
  • 20、获取当前Activity
  • 21、等待指定Activity
  • 22、单击元素
  • 23、滑动
  • 24、快速滑动
  • 25、拖动
  • 26、缩小
  • 27、放大
  • 28、滚动
  • 29、输入
  • 30、清除
  • 31、摇动
  • 32、重置
  • 33、截图
  • 34、模拟手指点击
  • 35、触控操作(TouchAction)
  • 36、上传文件
  • 37、下载文件
  • 38、下载文件夹
  • 39、获取页面源码
  • 40、获取元素文本值
  • 41、获取元素属性值
  • 42、获取元素的tagName属性
  • 43、返回元素是否被选中
  • 44、返回元素是否可用
  • 45、返回元素是否可见
  • 46、获取屏幕分辨率
  • 47、设置屏幕分辨率
  • 48、获取元素的大小
  • 49、获取当前坐标位置
  • 50、获取网络类型
  • 51、设置网络类型
  • 52、打开定位服务
  • 53、设置设备经纬度
  • 54、获取可用的输入法
  • 55、获取当前输入法Package和Activity
  • 56、检查是否有输入法服务活动
  • 57、激活指定输入法
  • 58、关闭输入法
  • 59、按键码列表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档