zoukankan      html  css  js  c++  java
  • python接口自动化测试十五:解决密码动态,无法登录情况

    python接口自动化测试十五:解决密码动态,无法登录情况

     


    解决问题:每次密码都是变化的,无法通过账号密码登录
    (总不能每次去fiddler复制吧????)
    解决思路:
    1.先用selenium调用浏览器(不会selenium的自己想办法了),
    2.登录后从浏览器里面抓取cookies
    3.把cookies传给s
    4.这样就成功成功了
    如果登录有验证码怎么办?比如:博客园
    参考这篇:http://www.cnblogs.com/yoyoketang/p/8610779.html

    每次都会启动浏览器界面,不想看到浏览器启动怎么办?
    解决办法1:用chrome的headless模式  http://www.cnblogs.com/yoyoketang/p/8078873.html
    解决办法2:用phantomjs浏览器(不建议,坑多)

    from selenium import webdriver
    import requests
    import time
    driver webdriver.Firefox()

    url = 'http://127.0.0.1/zentao/user-login.html'
    driver.get(url)
    # 先登录
    driver.find_element_by_id("account").send_keys("admin")
    driver.find_element_by_name("password").send_keys("123456")
    driver.find_element_by_id("keepLoginon").click() # 勾选保持登录
    driver.find_element_by_id("submit").click()

    time.sleep(3)
    allcookies driver.get_cookies()  # 获取浏览器cookies
    print("获取到登录后的cookies:%s" % allcookies)

    # 把抓取的cookies添加到s中
    requests.session()

    def add_cookies(allcook):
        '''往session添加cookies'''
        try:
            
    # 添加cookies到CookieJar
            c requests.cookies.RequestsCookieJar()
            
    for in allcook:
                
    c.set(i["name"], i['value'])

            
    s.cookies.update(c)  # 更新session里cookies
        except Exception as msg:
            
    print(u"添加cookies的时候报错了:%s" % str(msg))
    # 调用添加cookies函数
    add_cookies(allcookies)

    print("打印s里面是否添加成功了")
    print(s.cookies)
    # 访问一个登录之后的页面,看是不是能访问了
    r1 s.get("http://127.0.0.1/zentao/my/")
    print(r1.content.decode("utf-8"))

    创作不易,转摘请标明出处。如果有意一起探讨测试相关技能可加博主QQ 771268289
  • 相关阅读:
    数据库三大范式
    sql 外键 on update cascade 和 on delete cascade 作用区别?
    Mybatis入门简版(二)
    Mybatis入门简版(一)
    Mybatis入门简版(补充)
    SQL中ON和WHERE的区别
    MySQL基础(五)常见运算符
    MySQL基础(四)常用函数
    MySQL基础(三)多表查询(各种join连接详解)
    MySQL基础(二)
  • 原文地址:https://www.cnblogs.com/dwdw/p/9553196.html
Copyright © 2011-2022 走看看