Example #1
0
def put(header,
        address,
        request_parameter_type,
        data=None,
        timeout=8,
        files=None):
    """
    put 请求
    :param header:  请求头
    :param address:  host地址
    :param request_parameter_type: 接口请求参数格式 (form-data, raw, Restful)
    :param data: 请求参数
    :param timeout: 超时时间
    :param files: 文件路径
    :return:
    """
    if request_parameter_type == 'raw':
        data = json.dumps(data)
    response = requests.put(url=address,
                            data=data,
                            headers=header,
                            timeout=timeout,
                            files=files)
    try:
        return response.status_code, response.json()
    except json.decoder.JSONDecodeError:
        return response.status_code, ''
    except simplejson.errors.JSONDecodeError:
        return response.status_code, ''
    except Exception as e:
        logging.exception('ERROR')
        logging.error(e)
        raise
Example #2
0
def save_cookie(header, address, timeout=8, data=None, files=None):
    """
    保存cookie信息
    :param header: 请求头
    :param address: 请求地址
    :param timeout: 超时时间
    :param data: 请求参数
    :param files: 文件路径
    :return:
    """
    cookie_path = setupMain.PATH + '/aff/data/cookie.txt'
    response = requests.post(url=address, data=data, headers=header, timeout=timeout, files=files)
    try:
        cookie = response.cookies.get_dict()
        for i in cookie:
            values = cookie[i]
            with open(cookie_path, 'w+', encoding='utf-8')as f:
                f.write(i+"="+values)
            logging.debug("cookies已保存,结果为:%s" % (i+"="+values))
    except json.decoder.JSONDecodeError:
        return response.status_code, ''
    except simplejson.errors.JSONDecodeError:
        return response.status_code, ''
    except Exception as e:
        logging.exception('ERROR')
        logging.error(e)
        raise
Example #3
0
def get(header, address, data, timeout=8):
    """
    get 请求
    :param header:  请求头
    :param address:  host地址
    :param data: 请求参数
    :param timeout: 超时时间
    :return:
    """
    response = requests.get(url=address,
                            params=data,
                            headers=header,
                            timeout=timeout)
    if response.status_code == 301:
        response = requests.get(url=response.headers["location"])
    try:
        return response.status_code, response.json()
    except json.decoder.JSONDecodeError:
        return response.status_code, ''
    except simplejson.errors.JSONDecodeError:
        return response.status_code, ''
    except Exception as e:
        logging.exception('ERROR')
        logging.error(e)
        raise
Example #4
0
 def get_element_text(self, locator):
     element = self.wait_element_visibility(locator)
     try:
         MyLog.info("获取:{}元素文本:{}".format(locator, element.text))
         return element.text
     except Exception as e:
         MyLog.error("获取元素文本:{}失败".format(element.text))
         self.save_image()
         raise e
Example #5
0
 def input_text(self, locator, value):
     element = self.wait_element_visibility(locator)
     try:
         MyLog.info("点击:{},输入:{}".format(locator, value))
         element.send_keys(value)
     except Exception as e:
         MyLog.error("输入数据:{}失败".format(value))
         self.save_image()
         raise e
Example #6
0
 def click_element(self, locator):
     element = self.wait_element_visibility(locator)
     try:
         MyLog.info("点击元素:{}".format(locator))
         element.click()
     except Exception as e:
         MyLog.error("点击元素:{}失败".format(locator))
         self.save_image()
         raise e
Example #7
0
 def wait_element_visibility(self, locator) -> WebElement:
     MyLog.info("等待元素:{}".format(locator))
     try:
         element = WebDriverWait(self.driver, 20).until(
             expected_conditions.presence_of_element_located(locator))
         return element
     except Exception as e:
         MyLog.error("等待元素:{}超时".format(locator))
         self.save_image()
         raise e
Example #8
0
 def long_click(self, locator):
     action = TouchAction(self.driver)
     element = self.wait_element_visibility(locator)
     try:
         MyLog.info("长按:{}元素".format(locator))
         action.long_press(element).wait(10000).perform()
     except Exception as e:
         MyLog.error("长按元素:{}失败".format(locator))
         self.save_image()
         raise e
Example #9
0
 def get_toast_msg(self, locator):
     #return (By.XPATH, "//*[@class='android.widget.Toast']")
     #return (By.XPATH, "//*[@text='审核成功']")
     toast_msg = self.wait_element_visibility(locator)
     try:
         MyLog.info("获取toast元素:{},文本:{}".format(locator, toast_msg.text))
         return toast_msg.text
     except Exception as e:
         MyLog.error("获取toast元素文本:{}失败".format(toast_msg.text))
         self.save_image()
         raise e
Example #10
0
def post(header, address, request_parameter_type, timeout=8, data=None, files=None):
    """
    post请求
    :param header: 请求头
    :param address: 请求地址
    :param request_parameter_type: 请求参数格式(form_data,raw)
    :param timeout: 超时时间
    :param data: 请求参数
    :param files: 文件路径
    :return:
    """
    if 'form_data' in request_parameter_type:
        for i in files:
            value = files[i]
            if '/' in value:
                file_parm = i
                files[file_parm] = (os.path.basename(value), open(value, 'rb'))
        enc = MultipartEncoder(
            fields=files,
            boundary='--------------' + str(random.randint(1e28, 1e29 - 1))
        )
        header['Content-Type'] = enc.content_type

        response = requests.post(url=address, data=enc, headers=header, timeout=timeout)
    else:
        response = requests.post(url=address, data=data, headers=header, timeout=timeout, files=files)
    try:
        if response.status_code != 200:
            return response.status_code, response.text
        else:
            return response.status_code, response.json()
    except json.decoder.JSONDecodeError:
        return response.status_code, ''
    except simplejson.errors.JSONDecodeError:
        return response.status_code, ''
    except Exception as e:
        logging.exception('ERROR')
        logging.error(e)
        raise