打印上下文

driver.contexts

打印当前上下文

driver.context

driver.current_context

切换上下文

driver.switch_to.context('WEBVIEW')

打印页面元素

driver.page_source

获取元素text属性

element.get_attribute('text')     android使用(获取元素的text值)

element.text     ios使用(获取元素的value值)

定位

driver.find_element_by_ios_uiautomation(uia_string)

driver.find_elements_by_ios_uiautomation(uia_string)

driver.find_element_by_android_uiautomator(uia_string)

driver.find_elements_by_android_uiautomator(uia_string)

例:driver.find_element_by_android_uiautomator('new UiSelector().text("竞彩篮球")')

driver.find_element_by_accessibility_id(id)

driver.find_elements_by_accessibility_id(id)

driver.find_element_by_id(id)

driver.find_elements_by_id(id)

driver.find_element_by_xpath(xpath)

driver.find_elements_by_xpath(xpath)

driver.find_element_by_name(name)

driver.find_elements_by_name(name)

driver.find_element_by_class_name(class)

driver.find_elements_by_class_name(class)

driver.find_element(by,value)

by:"id"、"xpath"、"class name"、 "name"、'-ios uiautomation'、'-android uiautomator'、'accessibility id'

坐标点击

driver.tap([(x,y)],time)

滑动

driver.swipe(x1,y1,x2,y2,time)

driver.flick(x1,y1,x2,y2)

输入

driver.send_keys()

driver.set_text() Android可用

driver.set_value() ios可用

如果使用sendkeys不行,可以尝试下面两种方法,我在测试ios输入密码框是自定义的键盘时,用sendkeys输入不了,appium服务端log提示没找到keyboard,后面尝试setvalue可以输入。

截图

driver.get_screenshot_as_file(filename)

获取手机屏幕分辨率

driver.get_window_size()

x = driver.get_window_size()['width']
y = driver.get_window_size()['height']

设置屏幕分辨率

driver.set_window_size(width,height)

获取当前坐标位置

driver.get_window_position()

滚动

driver.scroll(ele1,ele2)

按住element并拖动到另外一个element上

driver.drag_and_drop(ele1,ele2)

缩小

driver.pinch(ele)

放大

driver.zoom(ele)

重启app

driver.reset()

隐藏键盘

driver.hide_keyboard()

发送键盘事件

driver.keyevent(keycode)

按住键盘

driver.press_keycode(keycode)

长按住键盘

driver.long_press_keycode(keycode)

上传文件

driver.push_file(path)

下载文件

driver.pull_file(path)

下载文件夹

driver.pull_folder(path)

app隐藏后台

driver.background_app(time)

安装app

driver.install_app(path)

卸载app

driver.remove_app(app_id)

启动app

driver.launch_app()

关闭app

driver.close_app()

启动activity

driver.start_activity(app_package, app_activity)

打印当前activity

driver.current_activity

锁屏

driver.lock(time)

振动

driver.shake()

打开通知栏(api 18以上)

driver.open_notifications()

获取网络

driver.network_connection

设置网络连接( Android only.)

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)

获取手机输入法(返回list)

driver.available_ime_engines

激活某种输入法

driver.activate_ime_engine(engine)

判断输入法是否激活(返回bool)

driver.is_ime_active()

撤销当前输入法(Android only)

driver.deactivate_ime_engine()

得到当前设置

driver.get_settings()

返回{u'ignoreUnimportantViews': False}

更新当前设置

driver.update_settings(settings)

settings参数为dict,如{ignoreUnimportantViews : True}

ignoreUnimportantViews
参数:调用 uiautomator 的函数setCompressedLayoutHierarchy()。由于
Accessibility 命令在忽略部分元素的情况下执行速度会加快,这个关键字能加快测试执行的速度。被忽略的元素将不能够被找到,因此这个关键字同时也被实现成可以随时改变的 *设置 ( settings ) * 。默认值 false

开关定位服务

driver.toggle_location_services()

appium python版api的更多相关文章

  1. Appium 自动化测试(8) -- Appium Python client -- API

    最好的学习方法,就是看源码! 在  \appium\webdriver\webdriver.py ,新增了两个封装好定位安卓元素的方法,如  find_element_by_accessibility ...

  2. Appium Python Driver Api

  3. Appium Python核心API

    adb命令模拟按键事件 :http://blog.sina.com.cn/s/blog_68f262210102vc1b.html

  4. 移动端自动化测试Appium 从入门到项目实战Python版☝☝☝

    移动端自动化测试Appium 从入门到项目实战Python版 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌)  说到APP自动化测试,Appium可是说是非常流 ...

  5. Appium python API 总结

    Appium python api 根据testerhome的文章,再补充一些文章里面没有提及的API [TOC] [1]find element driver 的方法 注意:这几个方法只能通过sel ...

  6. Appium+python自动化8-Appium Python API

    Appium+python自动化8-AppiumPython API   前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...

  7. appium+python自动化☞appium python api大全

    整理了一些常用的appium python api,供学习使用...

  8. Appium===Appium+Python API(转)

    Appium+python自动化8-Appium Python API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contex ...

  9. Appium+python自动化8-Appium Python API【转载】

    前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts withi ...

随机推荐

  1. 暑假爆零欢乐赛SRM08题解

    这真的是披着CF外衣的OI赛制?我怎么觉得这是披着部分分外衣的CF?果然每逢cf赛制必掉rating,还是得%%%cyc橙名爷++rp.. A题就是找一找序列里有没有两个连在一起的0或1,并且不能向两 ...

  2. Python显示百分比

    print(format(a/b,'.2%')) 显示两位小数的百分比显示

  3. Stacktack overview

    class Lifecycle(models.Model):    """The Lifecycle table is the Master for a group of ...

  4. 平衡二叉树--java

    package com.test.tree; /** * 带有平衡条件的二叉查找树 * */ public class AVLBinarySearchTree<T extends Compara ...

  5. ADO.NET入门教程(一) 初识ADO.NET

    摘要 作为.NET框架最重要的组件之一,ADO.NET扮演着应用程序与数据交互的重要的角色.本文将从宏观的角度来探讨ADO.NET,和大家一起了解ADO.NET来龙去脉以及ADO.NET的主要组成部分 ...

  6. JAVA动态代理的全面深层理解

    Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过 ...

  7. js动态拼接参数到请求的url上

    var queryConfig={ "page" : "index", "method" : 2, //1:按照方法A查看 2:按照方法B查 ...

  8. Handsontable 的数据保存(增删改查+导出excel)

    项目用到handsontable 插件 根据官网 API写的handsontable初始化, 数据展示, ajax请求, 参数封装, Controller参数接受 全局容器 var AllData = ...

  9. 02-THREE.JS 辅助线使用

    <!DOCTYPE html> <html> <head> <title></title> <script src="htt ...

  10. GEF入门实例_总结_02_新建初始RCP空项目

    一.前言 本节承接上一节: GEF入门实例_总结_01_教程.源码.开发环境准备 这一节我们来创建一个空的RCP项目. 二.新建RCP项目 1. New 一个 Plug-in Project 2.输入 ...