Example #1
0
 def click(self, locat):
     time.sleep(3)
     try:
         self.__find_element(locat).click()
         self.writer.write(self.writer.row, self.writer.clo, 'PASS')
     except Exception as e:
         self.writer.write(self.writer.row, self.writer.clo, 'FAIL')
         logger.exception(e)
Example #2
0
    def back(self):
        '''
        返回操作
        :return:
        '''

        time.sleep(2)
        try:
            self.driver.back()
            self.writer.write(self.writer.row, self.writer.clo, 'PASS')
        except Exception as e:
            self.writer.write(self.writer.row, self.writer.clo, 'FAIL')
            logger.exception(e)
Example #3
0
 def sendkeys(self, locat, content):
     '''
     在指定元素中输入内容
     :param locat: 定位方式
     :param content: 输入内容
     :return: 无
     '''
     try:
         self.__find_element(locat).send_keys(content)
         self.writer.write(self.writer.row, self.writer.clo, 'PASS')
     except Exception as e:
         self.writer.write(self.writer.row, self.writer.clo, 'FAIL')
         logger.exception(e)
Example #4
0
 def clear(self, locat):
     '''
     清空指定位置控件的内容
     :param locat: 定位
     :return:
     '''
     try:
         self.__find_element(locat).click()
         self.writer.write(self.writer.row, self.writer.clo, 'PASS')
     except Exception as e:
         self.writer.write(self.writer.row, self.writer.clo, 'FAIL')
         logger.error('无法定位到该元素!')
         logger.exception(e)
Example #5
0
 def swipe(self, p1, p2):
     '''
     滑动屏幕从p1到p2点
     :param p1: 初坐标
     :param p2: 末坐标
     :return:
     '''
     # TouchAction(driver).press(x=362, y=423).move_to(x=356, y=713).release().perform()
     try:
         # p1=''
         p1 = p1.split(',')
         x1 = int(p1[0])
         y1 = int(p1[1])
         p2 = p2.split(',')
         x2 = int(p2[0])
         y2 = int(p2[1])
         TouchAction(self.driver).press(x1,
                                        y1).move_to(x2,
                                                    y2).release().perform()
         self.writer.write(self.writer.row, self.writer.clo, 'PASS')
     except Exception as e:
         self.writer.write(self.writer.row, self.writer.clo, 'FAIL')
         logger.exception(e)
Example #6
0
    def __find_element(self, ojb):
        '''
        支持三种定位方式:id ,xpath ,accessibility_id
        :param ojb: id ,xpath ,accessibility_id
        :return: 定位的元素
        '''

        # 兼容多种定位
        try:
            if ojb.find(':id') > -1:
                ele = self.driver.find_element_by_id(ojb)

            else:
                if ojb.startswith('/'):
                    ele = self.driver.find_element_by_xpath(ojb)

                else:
                    ele = self.driver.find_element_by_accessibility_id(ojb)

        except Exception as e:
            logger.exception(e)
            return None
        return ele
Example #7
0
    def runapps(self, confs, t):
        '''
        连接设备、打开app
        :param confs:
        :param t:
        :return:
        '''

        # 默认配置
        conf = {
            "platformName": "Android",
            "platformVersion": "6.0.1",
            "deviceName": "127.0.0.1:7555",
            "appPackage": "com.tencent.mm",
            "appActivity": ".ui.LauncherUI",
            "noReset": "true",
            "unicodeKeyboard": "true",
            "resetKeyboard": "true"
        }

        try:
            # 将数据传进来
            confs = eval(confs)
            for key in confs:
                conf[key] = confs[key]
        except Exception as e:
            logger.warn("app配置数据错误")
            logger.exception(e)

        # 多台设备连接时,需要指定设备
        conf['uid'] = conf['deviceName']
        try:
            # 保障设备已连接上
            os.system("adb connect " + conf['uid'])
        except Exception as e:
            logger.exception(e)

        try:
            # 连接设备打开app
            print('http://localhost:' + self.port.__str__() + "/wd/hub")
            self.driver = webdriver.Remote(
                'http://localhost:' + self.port + "/wd/hub", conf)
            self.writer.write(self.writer.row, self.writer.clo, 'PASS')
        except Exception as e:
            self.writer.write(self.writer.row, self.writer.clo, 'FAIL')
            self.writer.write(self.writer.row, self.writer.clo + 1, '启动app失败')
            logger.exception(e)
        # 设置隐式等待
        self.driver.implicitly_wait(t)
        # self.driver.back()
        return self.driver