def initDevice(self): ''' 初始化设备 :return: ''' if (ST.DEVICE is None) or (len(ST.DEVICE) == 0): #未配置设备时,使用默认设备进行连接 #先尝试连接安卓设备,如果连接失败,连接IOS try: dev = init_device(cap_method=ST.CAP_METHOD, ori_method=ST.ORI_METHOD, touch_method=ST.TOUCH_METHOD) except: dev = init_device(self.__ios) self.__airtestDevDict["___one___"] = dev self.__nameAndDevMap["___one___"] = dev.uuid devType = dev.__class__.__name__ if devType == self.__android: pocoDev = AndroidUiautomationPoco() pootDev = Poot(dev.uuid, screenshot_each_action=True) elif devType == self.__ios: pocoDev = iosPoco() pootDev = None else: raise BaseException("暂时不支持此种类型设备{%s}" % devType) self.__pocoDevList["___one___"] = pocoDev self.__pootDevList["___one___"] = pootDev self.__activeDevName = "___one___" self.__activeDev = dev self.__activePoco = pocoDev self.__activePoot = pootDev self.__activeDevType = devType else: #否则,使用配置进行连接 for devName, devUri in ST.DEVICE.items(): dev = connect_device(devUri) self.__airtestDevDict[devName] = dev self.__nameAndDevMap[devName] = dev.uuid devType = dev.__class__.__name__ if devType == self.__android: pocoDev = AndroidUiautomationPoco(dev) pootDev = Poot(dev.uuid, screenshot_each_action=True) elif devType == self.__ios: pocoDev = iosPoco() pootDev = None else: raise BaseException("暂时不支持此种类型设备{%s}" % devType) self.__activeDevName = devName self.__pocoDevList[devName] = pocoDev self.__pootDevList[devName] = pootDev self.__activeDev = dev self.__activePoco = pocoDev self.__activeDevType = devType self.__activePoot = pootDev LOGGING.info("(%s)已连接" % ",".join(self.__nameAndDevMap.values()))
def __pre(self): """ 初始化 :return: """ # 连接设备 connect_device('iOS:///127.0.0.1:8100') self.poco = iosPoco() # 屏幕宽高 [640, 1136] self.size = self.poco.get_screen_size() # 打开设备 home() stop_app(package=self.package) start_app(package=self.package, activity=None) # 主页元素 element_home_tab1 = self.poco('闲鱼') element_home_tab2 = self.poco('鱼塘') element_home_tab3 = self.poco('消息') element_home_tab4 = self.poco('我的') element_home_tab5 = self.poco('发布') self.poco.wait_for_all([ element_home_tab1, element_home_tab2, element_home_tab3, element_home_tab4, element_home_tab5 ]) print('主页加载完全~')
def init_driver(self): # 创建设备驱动 self.device_phone = my_retry_connect("ios:///http://{0}:{1}".format( self.phone_ip, self.phone_port)) self.phone_dev = "http://{0}:{1}".format(self.phone_ip, self.phone_port) self.poco_phone_driver = iosPoco(self.device_phone, poll_interval=1) # 关闭截图 self.poco_phone_driver.screenshot_each_action = False
def setUpClass(cls): """ 整个用例执行的前置条件 """ super(BaseAppCase, cls).setUpClass() if Data.device_type == 'android': cls.poco = AndroidUiautomationPoco() else: cls.poco = iosPoco()
def init_ios_app(self): # 创建设备驱动 self.device_phone = connect_device("ios:///http://{0}:{1}".format(self.phone_ip, self.phone_port)) self.phone_dev = "http://{0}:{1}".format(self.phone_ip, self.phone_port) self.poco_phone_driver = iosPoco(self.device_phone, poll_interval=1) # 关闭截图 self.poco_phone_driver.screenshot_each_action = False # 初始化页面 self.home_page = IOSHomePage(self.poco_phone_driver) self.second_page = IOSSecondPage(self.poco_phone_driver)
def ios_poco(request): global IosPoco if IosPoco is None: connect_device('iOS:///' + ADDRESS) IosPoco = iosPoco() yield IosPoco def end(): home() request.addfinalizer(end)
def runCase(self, vars): poco = iosPoco() poco("Patient Beta").click() touch(Template(img("tpl1553160183364"))) text("*****@*****.**") touch(Template(img("tpl1553160262626"))) touch(Template(img("tpl1553160280476"))) text("zxcvbnm") touch(Template(img("tpl1553160262626"))) sleep(3) assert_exists(Template(img("tpl1553160329233")), "should display tool bar")
def connect(self, driver_ip, driver_port, device_id): if driver_ip and driver_port: self.device = retry_connect("ios:///http://{0}:{1}".format( driver_ip, driver_port)) elif device_id: self.device = retry_connect("ios:///http://{0}".format(device_id)) driver = iosPoco(self.driver, poll_interval=1) self.device = device() # 关闭截图 driver.screenshot_each_action = True return driver
import requests import pandas import csv pytesseract.pytesseract.tesseract_cmd = r'/usr/local/bin/tesseract' # connect_device("ios:///http://127.0.0.1:8100") from airtest.core.api import connect_device from poco.drivers.android.uiautomation import AndroidUiautomationPoco connect_device("ios:///http://127.0.0.1:8100") # device_2 = connect_device('Android:///SGTOO7NFQKY9I7CU?cap_method=javacap&touch_method=adb') # poco_2 = AndroidUiautomationPoco(device_2, use_airtest_input=True, screenshot_each_action=False) # connect_device("Android:///") from poco.drivers.ios import iosPoco poco = iosPoco() auto_setup(__file__) class Common_AVC: def __init__(self): self.interval = 2 def setCurrentDevice(self, device): set_current(device) def startAVC(self, packageName): start_app(packageName) # wait(Template(r"resource/images/tpl1568100069708.png", record_pos=(0.003, -0.54), resolution=(750, 1334)),5) # sleep(self.interval)
# -*- encoding=utf8 -*- __author__ = "wanyilei" from airtest.core.api import * from poco.drivers.ios import iosPoco from poco.drivers.android.uiautomation import AndroidUiautomationPoco pocoAndorid = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) pocoiOS = iosPoco() auto_setup(__file__)