예제 #1
0
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
예제 #2
0
 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 = ""
예제 #3
0
    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))
예제 #4
0
            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])