美文网首页我的技术博客测试小组-一步步提升测试技能百人计划
(已解决)-自动化测试 -- 通过Cookie跳过登录验证码

(已解决)-自动化测试 -- 通过Cookie跳过登录验证码

作者: 卜了了 | 来源:发表于2017-08-28 19:37 被阅读109次

    参考连接: http://www.cnblogs.com/fnng/p/6431484.html-虫师的博客

    现在进行到添加coockie,目前未添加成功,接下来要了解下cookie的原理。目前怀疑 BAIDUID和BDUSS是否就是分别对应的用户名和密码的key

    py文件内容:

    from selenium import webdriver

    from time import sleep

    driver = webdriver.Firefox()

    driver.get("https://baidu.com/")

    cookie = driver.get_cookies()

    print(cookie)

    #添加cookie

    driver.add_cookie({'name':'BAIDUID','value':'username'})

    driver.add_cookie({'name':'BDUSS','value':'password'})

    #再次访问,将会自动登录

    driver.get("https://baidu.com/")

    后面发现,执行完,并没有进入登录状态,这是哪里的问题?

    执行py文件,打印出的cookie是:

    [{'secure': False, 'httpOnly': False, 'value': 'DC29E8589D5DA9F7F54BxxxxxxxDAB6:FG=1', 'name': 'BAIDUID', 'expiry': 3651405136, 'domain': '.baidu.com', 'path': '/'}, {'secure': False, 'httpOnly': False, 'value': 'DC29E8589xxxxx85FBD269DAB6', 'name': 'BIDUPSID', 'expiry': 3651405136, 'domain': '.baidu.com', 'path': '/'}, {'secure': False, 'httpOnly': False, 'value': '1503921490', 'name': 'PSTM', 'expiry': 3651405136, 'domain': '.baidu.com', 'path': '/'}, {'secure': False, 'httpOnly': False, 'value': '0', 'name': 'BD_HOME', 'expiry': None, 'domain': 'www.baidu.com', 'path': '/'}, {'secure': False, 'httpOnly': False, 'value': '1467_21089', 'name': 'H_PS_PSSID', 'expiry': None, 'domain': '.baidu.com', 'path': '/'}, {'secure': False, 'httpOnly': False, 'value': '13314352', 'name': 'BD_UPN', 'expiry': 1504785490, 'domain': 'www.baidu.com', 'path': '/'}, {'secure': False, 'httpOnly': False, 'value': 'B490B5EBF6F3CD402E5xxxxxxDA1598', 'name': 'BDORZ', 'expiry': 1504007892, 'domain': '.baidu.com', 'path': '/'}]

    这里面是打印的原cookie,当前cookie里面并没有用户名和密码的key。所以后面是添加key,并且添加值。如上添加失败。。。

    上面的网址改为:http://www.itdiffer.com/course/41

    登录前后的cookie为:

    未登录:

    [{'domain': 'www.itdiffer.com', 'name': 'PHPSESSID', 'value': 'ir54b1gs1ajooismgeis1me9g4', 'path': '/', 'secure': False, 'httpOnly': False, 'expiry': None}]

    denglu:

    [{'value': 'svlof40ejdq604xxxx7qd6e20', 'expiry': None, 'path': '/', 'name': 'PHPSESSID', 'domain': 'www.itdiffer.com', 'secure': False, 'httpOnly': False}, {'value': 'VG9weGlhXFNlcxxxxxdXJyZW50VXNlcjpPVEV6TmpFek5ERTNRSEZ4TG1OdmJRPT06MTUzNTQ2MzgxNzowOTI2ZDY2NxxxxxxNGFiNTc3YTcwZmU0ODFhYzQxMzI4NWQ0MzA5N2Q2Y2Y5MzEwNTg2YTRhOWM2', 'expiry': 1535463815, 'path': '/', 'name': 'REMEMBERME', 'domain': 'www.itdiffer.com', 'secure': False, 'httpOnly': True}]

    哪个多了???




    首先说个小问题,怎么得到cookie,是否安装fiddler工具才能看到,不是:

    1 2 3

    然后,重点来啦:

    之前的一个理解误区。我之前一直以为添加cookie跳过验证码,意思就是将登录用户的用户名和密码加到cookie中,按照这个思路,就是在cookie中添加两个键值对:用户名-值,密码-值。

    之前还去整理了下cookie的工作原理,愣是没弄明白,现在才知道,因为一个登录用户对应一个id--比如BAIDUID,这个是唯一的。那么添加后,服务器识别后看到还是这个id那么就确认已经登录了。

    具体步骤

    这两个值,是在cookie中选择的,这个对应每个登录用户都是不同的。登录成功后,找到对应的值,复制过来。运行就发现自己的浏览器是登录状态了,而,我们根本没有输入用户名和密码,当然验证码更是跳过了。 是不是很棒。呵呵

    ---

    后面遇到想通过添加cookie跳过输入用户名密码验证码,发现竟然没成功,于是再回来重新补课。补课链接http://www.itest.info/videos/26,从32:33开始即可。

    重新刷了一遍,发现可以用fiddler看cookie。

    目前可以1,在浏览器查看cookie,2,在fiddler中看cookie,3,F12查看cookie

    后面再试,发现仍然不能进入登录状态,问开发,得到答案:因为有后台拦截器,所以不允许直接访问后台。如果要用需要将拦截器给注掉。

    相关文章

      网友评论

      • 只想躺赢:百度的登录不上去是不是因为登录要文字验证码 这个每次都变的
        卜了了:感谢亲,送小花两朵:cherry_blossom: :hibiscus:
        卜了了:@静默的夜 这个的目的就是通过添加cookie登录不需要添加随时会变化的验证码

      本文标题: (已解决)-自动化测试 -- 通过Cookie跳过登录验证码

      本文链接:https://www.haomeiwen.com/subject/yrybdxtx.html