def devices(): """返回已连接设备的udid""" device_list = [] data = getYam(PATH('../config/app_caps.yaml'))[1] # with open('../config/app_caps.yaml', 'r', encoding='utf-8') as file: # data = yaml.load(file) cmd = 'adb devices' dev = os.popen(cmd).readlines() len_devices = len(dev) - 1 for i in range(1, len_devices): devices_dict = dict() devices_dict.update(data) devices_dict['udid'] = dev[i].split('\t')[0] devices_dict['port'] = 4721 + 2 * i devices_dict['bport'] = devices_dict['port'] + 1 devices_dict['deviceName'] = devices_dict['udid'] devices_dict["systemPort"] = str(random.randint(4700, 4900)) devices_dict["automationName"] = "uiautomator2" base_dir = os.path.dirname(os.path.dirname(__file__)) app_path = os.path.join(base_dir, 'app', data['appname']) devices_dict['app'] = app_path # device_list.append([]) # device_list[i - 1].append(devices_dict) device_list.append(devices_dict) return device_list
def __init__(self, kwargs): self.driver = kwargs["driver"] if kwargs.get("launch_app", "0") == "0": # 若为空,重新打开app self.driver.launch_app() self.path = kwargs["path"] self.operateElement = OperateElement(self.driver) self.isOperate = True test_msg = getYam(self.path) self.testInfo = test_msg["testinfo"] self.testCase = test_msg["testcase"] self.testcheck = test_msg["check"] self.device = kwargs["device"] self.logTest = kwargs["logTest"] self.caseName = kwargs["caseName"] self.get_value = [] self.msg = ""
def _suite(self): suitPath = PATH('../yamls/module.yaml') suitList = getYam(suitPath)[1] suite = unittest.TestSuite() for suitName in suitList: case = dict() for caseName in suitList[suitName]: pathList = list() for path in suitList[suitName][caseName]: casePath = '../yamls/' + str(suitName) + '/' + path pathList.append(casePath) case[caseName] = Path(pathList) CaseClass = type(suitName, (Module, ), case) suite.addTest( ParametrizedTestCase.parametrize(CaseClass, param=self.devices))
be.find_element_by_css_selector: lambda: self.driver.find_element_by_css_selector(mOperate[ 'element_info']), be.find_element_by_class_name: lambda: self.driver.find_element_by_class_name(mOperate[ 'element_info']), be.find_elements_by_id: lambda: self.driver.find_elements_by_id(mOperate['element_info']), be.find_element_by_accessibility_id: lambda: self.driver.find_element_by_accessibility_id(mOperate[ 'element_info']), be.find_element_by_image: lambda: self.find_element_by_image(mOperate['element_info']) } return elements[mOperate["find_type"]]() if __name__ == '__main__': from common.desired_caps1 import appium_desired from common.BaseYaml import getYam p = r'..\yamls\home\firstOpen.yaml' data = getYam(p) # path = r'my.png' # m = {'element_info': 'my.png', 'find_type': 'img'} driver = appium_desired() f = OperateElement(driver) # pos = f.tap(data[1]['testcase'][0]) print(f.findElement(data[1]['testcase'][0])) # print(data[1]['testcase'][0])