zoukankan      html  css  js  c++  java
  • ppium使用方法说明

    global driver
    # 元素定位
    driver.find_element_by_id("id") # id定位
    driver.find_element_by_name("name") # name定位
    driver.find_element_by_link_text("text") # 链接名定位
    driver.find_element_by_partial_link_text("text") # 通过元素部分可见链接文本定位
    driver.find_element_by_tag_name("name") # 通过查找html的标签名称定位元素
    driver.find_element_by_xpath("xpath") # 路径定位
    driver.find_element_by_class_name("android.widget.LinearLayout") # 类名定位
    driver.find_element_by_css_selector("css") # css选择器定位

    # 元素集合复数定位
    driver.find_elements_by_id("id") # id元素集合
    driver.find_elements_by_name("name") # name元素集合
    driver.find_elements_by_link_text("text") # 链接名元素集合
    driver.find_elements_by_partial_link_text("text") # 部分元素可见链接集合
    driver.find_elements_by_tag_name("name") # html标签名集合
    driver.find_elements_by_xpath("xpath") # 路径定位集合
    driver.find_elements_by_class_name("android.widget.LinearLayout") # 类名定位集合
    driver.find_elements_by_css_selector("css") # css选择器定位集合

    # 输入框输入
    driver.element.send_keys("中英")

    # 锁定屏幕
    driver.lock(5)

    # 把当前应用置于后台
    driver.background_app(5)

    # 收起键盘
    driver.hide_keyboard()

    # 打开一个应用或者activity,仅安卓端
    driver.start_activity('com.example.android.apis', '.Foo')

    # 打开下拉通知栏 仅Android
    driver.open_notifications()

    # 拖动元素,将元素origin_el拖到目标元素destination_el
    driver.drag_and_drop(self, origin_el, destination_el):

    # 检查app是否已安装
    driver.is_app_installed('com.example.android.apis')

    # 安装应用到设备
    driver.install_app('path/to/my.apk')

    # 删除应用
    driver.remove_app('com.example.android.apis')

    # 模拟设备摇晃
    driver.shake()


    # 关闭应用
    driver.close_app()

    # 启动 (Launch)
    # 根据服务关键字 (desired capabilities) 启动会话 (session) 。请注意这必须在设定 autoLaunch=false 关键字时才能生效。
    # 这不是用于启动指定的 app/activities ————你可以使用 start_activity 做到这个效果————
    # 这是用来继续进行使用了 autoLaunch=false 关键字时的初始化 (Launch) 流程的。
    driver.launch_app()

    # 应用重置,相当于重新卸载安装
    driver.reset()

    # 可用上下文 (context) 列出所有的可用上下文
    # 翻译备注:context可以理解为 可进入的窗口 。例如,对于原生应用,可用的context和默认context均为NATIVE_APP。
    # 详情可查看对混合应用进行自动化测试
    driver.contexts

    # 列出当前上下文
    driver.current_context

    # 切换到默认的上下文 (context)
    # 将上下文切换到默认上下文
    driver.switch_to.context(None)

    # 获取应用的字符串
    driver.app_strings

    # 按键事件 (Key Event)给设备发送一个按键事件
    driver.keyevent(176)

    # 获取当前的activity
    driver.current_activity

    # 触摸动作(TouchAction) / 多点触摸动作(MultiTouchAction)
    action = TouchAction(driver)
    action.press(element=el, x=10, y=10).release().perform()

    # 滑动(Swipe)模拟用户滑动
    # 注意:appium滑动规则是x从左到右变大,y从上到下变大
    driver.swipe(start=75, starty=500, endx=75, endy=0, duration=800)

    # 捏 (Pinch)捏屏幕 (双指往内移动来缩小屏幕)
    driver.pinch(element=el)

    # 放大 (Zoom)放大屏幕 (双指往外移动来放大屏幕)
    driver.zoom(element=el)

    # 滑动到某个元素 (Scroll To)
    todo: python

    # 从设备中拉出文件 (Pull File)
    driver.pull_file('Library/AddressBook/AddressBook.sqlitedb')

    # 推送文件到设备中去
    data = "some data for the file"
    path = "/data/local/tmp/file.txt"
    driver.push_file(path, data.encode('base64'))

    # 断言
    Assert.assertEquals("I am a div", div.getText()); //跳转到指定页面并在该页面所以用元素id进行交互

    # 检查文本是否符合预期
    assertEqual('I am a div', div.text)

    # 输入法是否有活动 返回真假
    is_ime_active(self):

    # 返回当前安卓设备可用的输入法
    driver.available_ime_engines(self):

    # 激活安卓设备中的制定输入法
    driver.activate_ime_engine(self, engine):

    # 关闭当前的输入法(android)
    driver.deactivate_ime_engine(self):

    # 打开安卓设备上的位置定位设置
    driver.toggle_location_services()

    # 设置设备的经纬度
    :Args:
    - latitude纬度 - String or numeric value between -90.0 and 90.00
    - longitude经度 - String or numeric value between -180.0 and 180.0
    - altitude海拔高度- String or numeric value
    用法 driver.set_location(纬度,经度,高度)

    # 点击
    element.click()

    # 清除元素内容
    element.clear()

    # 返回元素的文本内容
    element.text()

    # 提交表单
    element.submit(self):

    # 元素是否可用
    element.is_enabled()

    # 元素是否可选
    element.is_slected()

    # 元素是否可见
    element.is_displayed(http://www.my516.com)

    # 获取元素的大小(高和宽)
    new_size["height"] = size["height"]
    new_size["width"] = size["width"]
    driver.element.size

    # 获取元素左上角的坐标
    # 用法 driver.element.location
    '''返回element的x坐标, int类型'''
    driver.element.location.get('x')
    '''返回element的y坐标, int类型'''
    driver.element.location.get('y')

    # 获取当前元素的截图为Base64编码的字符串
    img_b64 = element.screenshot_as_base64

    # 执行JS
    # 在当前窗口/框架(特指 Html 的 iframe )同步执行 javascript 代码
    driver.execute_script('document.title')
    # 异步执行代码,其他代码在执行
    driver.execute_async_script('document.title')

    # 获取当前url
    driver.current_url

    # 获取页面源
    driver.page_source

    # 关闭当前窗口
    driver.close()


    # 关闭应用
    driver.quit()

    # chrome上进行测试
    {
    'platformName': 'Android',
    'platformVersion': '4.4',
    'deviceName': 'Android Emulator',
    'browserName': 'Chrome'
    }

    # 真机测试
    {
    'automationName': 'Selendroid',
    'platformName': 'Android',
    'platformVersion': '2.3',
    'deviceName': 'Android Emulator',
    'app': myApp,
    'appPackage': 'com.mycompany.package',
    'appActivity': '.MainActivity'
    }

    # 多点触控
    """
    规范中的可用事件有:
    * 短按 (press)
    * 释放 (release)
    * 移动到 (moveTo)
    * 点击 (tap)
    * 等待 (wait)
    * 长按 (longPress)
    * 取消 (cancel)
    * 执行 (perform)

  • 相关阅读:
    讨论: 在WebControl中的Button,同时有onClientClick和onclick事件,验证控件实效
    在DropDownList中显示树形结构
    我的软件开场白+简单的通讯录
    DataList中动态添加控件遇到的问题
    伤心啊!不知道怎么感冒了
    存储过程实现无限级分类(2)
    上传文件类
    一个用泛型,和Sql语句分页的源代码
    在GridView中用Js实现全选
    [转]如何完美应对面试
  • 原文地址:https://www.cnblogs.com/ly570/p/11291183.html
Copyright © 2011-2022 走看看