zoukankan      html  css  js  c++  java
  • appium安装与简单使用

    安装appium client:
    cmd下输入命令:pip install Appium-Python-Client

    pycharm下一个简单的实例,通过appium驱动android模拟器->打开计算器->计算5+6=?->关闭计算器
    from appium import webdriver

    desired_caps = {}
    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '6.0'
    desired_caps['deviceName'] = 'Android Emulator'
    desired_caps['appPackage'] = 'com.android.deskclock'
    desired_caps['appActivity'] = '.DeskClock'

    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)#启动app

    driver.find_element_by_name("5").click()

    driver.find_element_by_name("+").click()

    driver.find_element_by_name("6").click()

    driver.find_element_by_name("=").click()

    driver.quit()

    webdriver.Remote实际上就是原生webdriver的子类,另外Remote()构造函数的第一个参数中需要显示指定appium server监听的端口
    platformName:使用哪种移动平台。iOS, Android, or FirefoxOS
    deviceName:启动哪种设备,是真机还是模拟器?iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, etc…
    appActivity:待测试的app的Activity名字。比如MainActivity, .Settings。注意,原生app的话要在activity前加个”.“。
    appPackage:待测试的app的java package。比如com.example.android.myApp, com.android.settings。

    其他:
    app:应用的绝对路径,注意一定是绝对路径。如果指定了appPackage和appActivity的话,这个属性是可以不设置的。另外这个属性和browserName属性是冲突的。
    browserName:移动浏览器的名称。比如Safari’ for iOS and ‘Chrome’, ‘Chromium’, or ‘Browser’ for Android;与app属性互斥。
    udid:物理机的id。比如1ae203187fc012g



    monitor.bat:
    该文件位于your_andriod_sdk_path ools下面,可以帮我们找到android控件的content-description,为以后的find_element_by_accessibility_id 定位方法做参数使用
    uiautomatorviewer.bat:
    该文件位于your_andriod_sdk_path ools下面
    该工具主要用来查看控件的属性,比如resource id,class name等。
    该工具也可查看被测app的appPackage(Desired Capabilities中使用)

    查找appActivity和appPackage:
    a、启动待测apk
    b、开启日志输出:adb logcat>D:/log.txt
    c、关闭日志输出:ctrl+c
    d、查看日志
    找寻:
    Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859ms
    appPackage = com.mm.android.hsy
    appActivity = .ui.LoginActivity


    python篇
    el = self.driver.find_element_by_android_uiautomator('new UiSelector().description("Animation")')
    self.assertIsNotNone(el)
    els = self.driver.find_elements_by_android_uiautomator('new UiSelector().clickable(true)')
    self.assertIsInstance(els, list)

    el = self.driver.find_element_by_accessibility_id('Animation')
    self.assertIsNotNone(el)
    els = self.driver.find_elements_by_accessibility_id('Animation')
    self.assertIsInstance(els, list)
    总的来说就是在driver里增加了
     find_element_by_accessibility_id
    find_elements_by_accessibility_id
    find_element_by_android_uiautomator
    find_element_by_android_uiautomator
    等方法


    Appium连接真机
    1)打开手机的USB调试模式
    不同的手机打开调试模式的方式不同。一般都在设置中的开发者模式中打开
    2)手机连接电脑
    使用数据线连接手机与电脑,然后在cmd中输入adb devices查看是否连接成功
    新手可能会出现两个问题
    一是输入adb命令时提示不是内部命令或者外部命令


    那么你需要下载一个adb工具包并存放在C:WindowsSystem32目录下(必须强调:与sdk中的adb工具包版本一致!!!!)


    二是需要打开手机的usb调试模式并安装好驱动
    之后在cmd中输入adb devices 提示如下图则成功


    3)启动appium服务
    在cmd命令中输入:appium


    启动成功

    或者appium上配置:

    安装好django,版本1.9,使用pip install django==1.9命令安装即可

  • 相关阅读:
    解释器模式
    享元模式
    中介者模式
    职责链模式
    命令模式
    桥接模式
    Java迭代器Iterator
    [Swift]LeetCode1247. 交换字符使得字符串相同 | Minimum Swaps to Make Strings Equal
    [Swift]LeetCode1248. 统计「优美子数组」| Count Number of Nice Subarrays
    [Swift]LeetCode1239. 串联字符串的最大长度 | Maximum Length of a Concatenated String with Unique Characters
  • 原文地址:https://www.cnblogs.com/ninanie/p/8213406.html
Copyright © 2011-2022 走看看