zoukankan      html  css  js  c++  java
  • 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:DiskTopALDI_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)
      
  • 相关阅读:
    跨域处理
    intellij idea远程调试
    sring boot特性
    spring mvc与struts2的区别
    jenkins集成sonar
    hibernate笔记
    python脚本
    python 字符框
    python操作
    python环境配置
  • 原文地址:https://www.cnblogs.com/lfotest/p/14448322.html
Copyright © 2011-2022 走看看