python +uiautomator 安卓UI控件操作

一、搭建环境

  准备:win7、JDK、androidSDK(adt-bundle-windows-x86_64-20140702\sdk)、Appium、安卓模拟器(真机也可以),可以到这个地址下载https://pan.baidu.com/s/1NV5ncqRel4bkGoVzLyXuIg      提取码:6bst

  1.安装Android模拟器: TianTian模拟器

  2.安装Appium服务器

  3.安装JDK

  4.如JDK安装在C盘,androidSDK放在C盘则按下面进行配置环境:

    增加变量(系统变量处新建):JAVA_HOME           值为: C:\Program Files\Java\jdk1.8.0_51
    增加变量(系统变量处新建):JRE_HOME            值为: C:\Program Files\Java\jre1.8.0_51
    增加变量(系统变量处新建):ANDROID_HOME  值为:C:\adt-bundle-windows-x86_64-20140702\sdk

    添加PATH环境:C:\adt-bundle-windows-x86_64-20140702\sdk\platform-tools;

            C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W;

  5.开启安卓模拟器或者电脑连接手机(要保证已经安装了驱动,开启调试)

  6.cmd命令行下查看

    adb devices 查看连接的安卓设备

    adb connect 127.0.0.1:6555   连接天天模拟器

    如下表是连接成功

    python +uiautomator 安卓UI控件操作

  7.经过以上步骤说明已经成功和手机连接了(模拟器和真机都可以)

二、安装Appium的Python客户端库     cmd命令:pip install Appium-Python-Client

 

三、写python代码

from appium import webdriver
from time import sleep
import unittest
import warnings   #用于屏蔽信息

class AndroidTest(unittest.TestCase):
    """
    Android测试用例
    """

    def setUp(self):
        warnings.simplefilter(ignore, ResourceWarning)#屏蔽警告信息
        desired_cap = {}
        desired_cap[platformName] = Android  #操作系统类型
        desired_cap[deviceName] = Android Emulator#设备名称,随意也可以

        # 方法1:指定打开的APP,针对没有安装被测APP
        # desired_cap[‘app‘] = r"E:\share\App\apks\ApiDemos-debug.apk"
        # 方法2:指定打开的APP,针对已经安装了APP
        desired_cap[appPackage] = io.appium.android.apis#App的包名
        desired_cap[appActivity] = "io.appium.android.apis.ApiDemos"#打开的UI界面
        #4723为Appium服务器的端口号,需要根据实际设定
        self.driver = webdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_cap)
        self.driver.implicitly_wait(10)  #定位元素超时时间


    def tearDown(self):
        sleep(2)
        #关闭APP
        self.driver.quit()

    def test1(self):
        # 根据class和text属性
        # el = self.driver.find_element_by_xpath("//android.widget.TextView[@text=‘Animation‘]")
        #定位控件
        el = self.driver.find_element_by_xpath("//android.widget.TextView[@text=‘Animation‘ and @index=‘1‘]")

        # 获得控件的文本
        print(el.text)
        print(el.get_attribute("text"))

 

  

  

python +uiautomator 安卓UI控件操作

上一篇:centos7 实测 nagios 安装


下一篇:.NET Core中的中介者模式-第一部分-什么是中介者