• 1:通过 Charles 抓包,然后导出为 har 格式文件(也可以直接修改为 json 后缀)。
    2:通过 json 库(或其他操作 json 的库)读取对应的请求参数,如 json['data']['request']['params'],提取参数后做对应修改(如根据请求字段生成不同的参数)。
    3:设定请求模板,如 request.get(url,params,data),填充对应的参数。

  • 直接通过 adb shell getevent -l 获取的坐标测试发现有的手机坐标不对(12、13 系统的手机会存在此问题),得通过 adb 命令换算一下,拿到换算的值再乘以 adb shell getevent -l 返回的坐标

    点击坐标换算

    def get_click_point_value():
    # 判断系统类型,执行不同的命令
    sys = get_user_platform()
    if sys:
    device_info_w = subprocess.Popen('adb shell getevent -p | findstr "0035"', shell=True,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE)
    max_w = re.compile(r'\d+').findall(str(device_info_w.communicate()[0]))[3]
    device_info_w = subprocess.Popen('adb shell getevent -p | findstr "0036"', shell=True,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE)
    max_h = re.compile(r'\d+').findall(str(device_info_w.communicate()[0]))[3]
    else:
    device_info = subprocess.Popen('adb shell getevent -p | grep -e "0035" -e "0036"', shell=True,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE)
    max_w = re.compile(r'\d+').findall(str(device_info.communicate()[0]))[3]
    max_h = re.compile(r'\d+').findall(str(device_info.communicate()[0]))[10]
    device_wm_info = subprocess.run('adb shell wm size', shell=True, capture_output=True)
    wm_list = device_wm_info.stdout.decode().split("x")
    width = wm_list[0].split(":")[1]
    height = wm_list[1].replace("\n", "")
    rateW = round(int(width) / int(max_w), 2)
    rateH = round(int(height) / int(max_h), 2)
    return rateW, rateH

    获取系统类型

    def get_user_platform():
    sys = platform.system()
    if (sys == "Windows"):
    return True
    else:
    return False

  • 👍

  • 前几天还买了虫洞的 VIP,后来发现自己的 MAC 系统是 12,正好用不了,测试机连接不上自己的 MAC,尴尬了