欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python +uiautomator 安卓UI控件操作

程序员文章站 2022-05-14 08:53:24
一、搭建环境 准备:win7、JDK、androidSDK(adt-bundle-windows-x86_64-20140702\sdk)、Appium、安卓模拟器(真机也可以),可以到这个地址下载https://pan.baidu.com/s/1NV5ncqRel4bkGoVzLyXuIg 提取码 ......

一、搭建环境

  准备: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"))