zoukankan      html  css  js  c++  java
  • appium python版api

    打印上下文

    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()


  • 相关阅读:
    day09 小练习 斐波那契数列 文件
    day09三目运算
    day08文件操作
    Nginx 内容缓存及常见参数配置
    阿里开源分布式事务解决方案 Fescar 全解析
    为什么你学不会递归?刷题几个月,告别递归,谈谈我的经验
    JavaScript 复杂判断的更优雅写法
    Java 线程本地 ThreadLocal 的分析和总结
    总结异步编程的六种方式
    JAVA8新特性(吐血整理)
  • 原文地址:https://www.cnblogs.com/hanzhao1987/p/5949580.html
Copyright © 2011-2022 走看看