zoukankan      html  css  js  c++  java
  • 自动化测试 Appium之Python运行环境搭建 Part2

    Appium之Python运行环境搭建 Part2

    by:授客 QQ:1033553122

    实践环境

    参见 Appium之Python运行环境搭建 Part1

     

    环境部署

    1、安装Android SDK

    安装好后,配置ANDROID_HOME环境变量,设置为Android SDK安装路径(例中:D:Program Files (x86)Androidandroid-sdk)

     

    2、安装其它SDK相关软件包

    安装好Android SDK后,选择打开Android SDK Manager(在Android SDK目录下,例中D:Program Files (x86)Androidandroid-sdk)

     

     

     

    选好后点击 接受协议Accept License,Install

     

    参考链接:

    https://www.zhihu.com/question/31935836

    http://www.cnblogs.com/kangjianwei101/p/5621238.html

     

    3、安装appium-uiautomator2-driver

    cmd打开控制台,输入以下命令安装

    > npm install -g appium-uiautomator2-driver

     

    参考链接:

    http://appium.io/docs/en/drivers/android-uiautomator2/index.html

    https://github.com/appium/appium-uiautomator2-driver

     

    4、开启appium、appium-desktop(如果没有开启的话)

     

    其它准备工作

    开启手机(模拟器)USB调试模式

     

    打开目标程序主页,比如图示计算机

     

     

    获取APK包名及资源定位器

    双击打开android_sdk_install_home oolsuiautomatorviewer.bat

    (例中:D:Program Files (x86)Androidandroid-sdk oolsuiautomatorviewer.bat
    点选图示圈选按钮中任何一个

     

     

    如上图,鼠标移动到目标控件,比如数字按钮7,可看到程序所在包名:package 为com.android.calculator2,数字按钮7对应资源IDpackage 为com.android.calculator2:id/digit_7

     

    活动名称获取

    通过adb logcat > log.txt 获取的

     

    代码测试

    #!/usr/bin/env python
    # -*- encoding:utf-8 -*-

    __author__ = 'laifuyu'

    import time

    from appium import  webdriver

    if __name__ == '__main__':
        desired_caps = {
            "platformName":"Android"
            "platformVersion":"5.0",
            "deviceName":"Android Emulator",
            "automationName":"UiAutomator2",
            # "app":"D:\apks\ai-sorting_v3.5.5_sit_debug_20180423114313.apk",
            "appPackage":"com.android.calculator2",

            "appActivity":".Calculator"
        }


        driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
        digit7 = driver.find_element_by_id('com.android.calculator2:id/digit_7')
        digit7.click()

        result = driver.find_element_by_id('com.android.calculator2:id/result')
        result.send_keys('+')

        time.sleep(30)

        driver.quit()

    运行结果:

     

    说明:

    platformName  设置手机操作系统平台(iOS, Android, FirefoxOS)

     

    platformVersion  设置手机操作系统版本

     

    deviceName    设置手机设备、模拟器类型。比如iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等,IOS操作系统上,该设备名必须是通过instruments -s devices命令返回的合法设备。对于Android操作系统来说,该属性虽然是必填,但是缺是被忽视的。

    automationName  设置使用哪个自动化引擎。对于Android:Appium(默认)、Selendroid 、UiAutomator2 、对于IOS:XCUITest

     

    app:设置apk软件包的绝对路径,或者.ipa ios包的http url,或者是一个包含一个.ipa、.apk软件包的.zip文件绝对路径。注意,似乎是这样的,如果手机设备、手机模拟器上没安装该软件包,则可设置该属性,运行时,会自动把该安装包安装到手机设备、模拟器上。 Appium会先尝试把这个app二进制文件安装到手机设备或者模拟器中。 注意,如果指定了appPackage和appActivity属性,则该可以不设置该属性。

    eg:

    /abs/path/to/my.apk

    http://myapp.com/app.ipa

            

    appPackage:设置Android app JAVA软件包

    appActivity:想启动的Android activity名称。通常需要加前缀. 比如.MainActivity而不是MainActivity。

    eg:

    MainActivity

    .Settings

     

    参考链接:

    https://github.com/appium/appium-uiautomator2-driver/blob/master/README.md

    https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

    https://github.com/appium/sample-code/blob/master/sample-code/examples/python/android_contacts.py

    https://blog.csdn.net/xyz846/article/details/50750701

     

     

     

     

     

  • 相关阅读:
    转 oracle catalog 库常用脚本
    转 【ORACLE】ORA-12537 问题整理
    转 Trace a specific ORA- error
    15%
    MySQL 存储过程
    MySQL 命令行客户机的分隔符
    MySQL 连接join
    MySQL 正则表达式
    MySQL 日期时间函数
    Arthas 快速入门
  • 原文地址:https://www.cnblogs.com/shouke/p/10700412.html
Copyright © 2011-2022 走看看