1. 程式人生 > 其它 >Pyhton3+AirTest+[003]+小程式UI自動化之常用方法介紹

Pyhton3+AirTest+[003]+小程式UI自動化之常用方法介紹

一、airtest介紹

  1. 官網:https://airtest.doc.io.netease.com/
  2. Airtest API文件:https://airtest.readthedocs.io/en/latest/

二、poco介紹

Poco是一款基於UI控制元件搜尋的自動化框架,與基於影象識別的Airtest不同的是,Poco可以使用類似 poco(“OK”).click() 的方式來獲取並操作節點
  1. 匯入poco

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
 
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
  1. 啟動APP

    def lautch_app(self,package,activity=None):
        """
        啟動app
        :param package:
        :param activity:
        :return:
        """
        try:
            start_app(package)
            return True
        except Exception as e:
            print("啟動失敗:{}".format(e))
            
print("啟動{}失敗!!!".format(package)) return False
  1. 頁面滑動相關方法

    1. 獲取手機螢幕大小
    def get_myWindow_size(self):
        """
        獲取裝置的高度和寬度
        :return:
        """
        width, height = self.poco.get_screen_size()

        return width, height
  1. 上滑螢幕
    def mobile_page_up_or_down_swip(self,start_x=0.5,start_y=0.6,end_y=0.9):

        
''' 頁面上下滑動 :return: ''' size = self.get_myWindow_size() print("size[0]={0},size[1]={1}".format(size[0],size[1])) logger.info("size[0]={0},size[1]={1}".format(size[0],size[1])) x1 = size[0] * start_x # size[0]取元組的第一個值,*0.5表示中間的點 y1 = size[1] * start_y # size[1]取元組的第二個值,*0.1表示距離底部近 y2 = size[1] * end_y time.sleep(2) swipe((x1*start_x, y1*start_y),vector=(x1*start_x,y2*end_y))
  1. 左滑螢幕
    def mobile_page_left_or_right_swip(self,start_x= 0.5,start_y= 3/4,end_x= 1/6):

        '''
        頁面左右滑動
        :return:
        '''

        size = self.get_myWindow_size()
        print("size[0]={0},size[1]={1}".format(size[0],size[1]))
        x1 = int(size[0] * start_x)  # size[0]取元組的第一個值,*0.5表示中間的點
        y1 = int(size[1] * start_y)  # size[1]取元組的第二個值,*0.1表示距離底部近
        x2 = int(size[0] * end_x)
        time.sleep(2)
        swipe((x1 * start_x, y1 * start_y),(x2 * end_x, y1 * start_y))
  1. 元素點選
    def click_element(self,method,context):
        """
        點選元素
        :param name:
        :return:
        """
        if method == "name":
            self.poco(name=context).click()
        elif method == "text":
            self.poco(text=context).click()
  1. 輸入文字
    def input_element(self,method,context,value):
        """
        輸入
        :param method:
        :param context:
        :return:
        """
        if method == "name":
            self.poco(name=context).set_text(value)
        elif method == "text":
            self.poco(text=context).set_text(value)
  1. 模擬鍵盤點選
    def click_keyboard(self,name):
        """
        模擬鍵盤點選

        :param name:
        :return:
        """
        keyevent(name)
  1. 檢測某元素是否存在,通過name和text
    def find_element_by_method(self,method,context):
        """
        通過method判斷元素是否存在
        :return:
        """
        if method == "name":

            return self.poco(name=context).exists()
        elif method == "text":

            return self.poco(text=context).exists()
        else:
            pass
當有些人一出生就有的東西,我們要為之奮鬥幾十年才擁有。但有一樣東西,你一輩子都不會有,那就是我們曾經一無所有。