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   連接天天模擬器

    如下表是連接成功

    

  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"))

 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM