环境搭建

参考我之前写的https://www.cnblogs.com/c-x-a/p/9163221.html

appium

代码start_appium.py

# -*- coding: utf-8 -*-
# @Time    : 2018/10/8 11:00
# @Author  : cxa
# @File    : test.py
# @Software: PyCharmctx
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
import base64 def start_appium():
    desired_caps = {}
    desired_caps['platformName'] = 'Android'  # 设备系统
    desired_caps['deviceName'] = '127.0.0.1:62001'  # 设备名称
    desired_caps['appPackage'] = 'com.xxxx.xxxx'  # 测试app包名,如何获取包名方式看上面的环境搭建。
    desired_caps['appActivity'] = 'com.xxxx.xxxx.xxx.xxxx'  # 测试appActivity,如何获取包名方式看上面的环境搭建。
    desired_caps['platformVersion'] = '4.4.2'  # 设备系统的安卓版本,版本不要太高,设计安全策略得外部因素。
    desired_caps['noReset'] = True  # 启动后结束后不清空应用数据
    desired_caps['unicodeKeyboard'] = True  # 此两行是为了解决字符输入不正确的问题
    desired_caps['resetKeyboard'] = True  # 运行完成后重置软键盘的状态  
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)  # 启动app,启动前记得打开appium服务。
    wait = WebDriverWait(driver, 60)#设置等待事件
    try:
        btn_xpath = '//android.widget.Button[@resource-id="com.alicom.smartdail:id/m_nonum_confirm_btn"]'
        btn_node = wait.until(EC.presence_of_element_located((By.XPATH, btn_xpath)))#等元素出现再继续,最长等待时间上面设置的60s。
        # btn_node=driver.find_element_by_xpath(btn_xpath)
        btn_node.click()
    except:
        driver.back()
        btn_xpath = '//android.widget.Button[@resource-id="com.alicom.smartdail:id/m_nonum_confirm_btn"]'
        btn_node = wait.until(EC.presence_of_element_located((By.XPATH, btn_xpath)))
        # btn_node = driver.find_element_by_xpath(btn_xpath)
        btn_node.click()
    # sleep 30s
    # 点击 def login_in(driver):
    id_xpath = '//android.widget.EditText[@content-desc="账户名输入框"]'
    id_node = driver.find_element_by_xpath(id_xpath)
    id_node.clear()
    id_node.send_keys("test")
    pwd = str(base64.b64decode("MTIzNHF3ZXI="), 'u8')
    pwd_xpath = '//android.widget.EditText[@content-desc="密码输入框"]'
    pwd_node = driver.find_element_by_xpath(pwd_xpath)
    pwd_node.clear()
    pwd_node.send_keys(pwd)
    submit = "//android.widget.Button[@text='登录']"
    submit_node = driver.find_element_by_xpath(submit)
    submit_node.click()
    time.sleep(10) if __name__ == '__main__':
    start_appium()

mitmproxy

代码
mitm_proxy_script.py

# -*- coding: utf-8 -*-
# @Time    : 2018/10/8 11:00
# @Author  : cxa
# @File    : mitm_proxy_script.py
# @Software: PyCharm
import sys
sitename = 'ali' def response(flow):
    request = flow.request
    if '.png' in request.url or 'xxx.x.xxx.com' not in request.url:
        return  #如果不在观察的url内则返回
    if 'xxx.x.xxx.com' in request .url:
        print(request .url)
        cookies = dict(request.cookies) #转换cookies格式为dict
        if cookies:
            save_cookies(repr(cookies))#如果不为空保存cookies def save_cookies(cookies):
    sys.path.append("../")
    from database import getcookies
    getcookies.insert_data(sitename, cookies) #保存cookies

最新文章

  1. Replace Temp with Query
  2. AudioRecord类获取录音音量分贝数
  3. U盘插入电脑后,提示需要格式化U盘如何解决?
  4. 可在广域网部署运行的QQ高仿版 -- GG叽叽V2.4,增加远程协助、桌面共享功能(源码)
  5. 让AutoMapper更好用
  6. selectNodes
  7. postgres-xc手册生成方法
  8. Linux下解压后缀名为".tar.xz"的文件
  9. [Redis]Redis的设计与实现-链表/字典/跳跃表
  10. java程序启动 环境属性的获取
  11. Jmeter Dash Report(HTML Report)删除Hits Per Second graph的方法
  12. JS输入框正则校验
  13. Java入门第一章知识点总结
  14. 接收Android数据 递归显示表格数据
  15. WinThruster清理电脑注册表
  16. Eclipse+Spring学习(一)环境搭建(转)
  17. 匿名内部类中关于new Runnable()的使用
  18. (转) 基于MapReduce的ItemBase推荐算法的共现矩阵实现(一)
  19. python爬虫(1)--Urllib库的基本使用
  20. beforeFilter()

热门文章

  1. HTML5之HTTP协议
  2. alpha冲刺随笔(一)
  3. OneZero第四周第三次站立会议(2016.4.13)
  4. BZOJ2431 HAOI2009逆序对数列(动态规划)
  5. BZOJ2744 HEOI2012朋友圈(二分图匹配)
  6. GCD LCM UVA - 11388 (思维。。水题)
  7. bzoj1047&bzoj1012
  8. POJ 1797 Heavy Transportation / SCU 1819 Heavy Transportation (图论,最短路径)
  9. Nginx反向代理下IIS获取真实IP
  10. c/c++ 某些特殊数的大小