selenium利用cookie跳过验证码登录

python+自动化 专栏收录该内容
7 篇文章 0 订阅

1、测试场景

在实现web自动化的过程中,为了解决每次登录时,验证码会随机变化的问题,以达到测试已登录状态的其他页面模块,我们需要利用cookie跳过登录,完成测试。

正常情况下,项目测试人员是不会遇到这种问题的,会找开发要一个固定验证码的万能账号,以结合selenium实现自动化登录。(后续会有实现一次登录,多次测试其他已登录页面的文章可以参考一下。)

2、操作原理

在等待间隙中,先手动登录,填写账密、验证码信息,登录成功 — 利用selenium的get_cookie() 获取已登录cookie — 再添加cookie至driver驱动 — driver.get(“url”)即可访问登录后的页面。

如下代码解析:
(为了命令清晰明了,使用API进行举例,没有使用定位元素定位。)

from selenium import webdriver
import time

class SkipCaptcha(object):

    def __init__(self):
        self.driver = webdriver.Chrome()

    def login(self):
        driver = self.driver

        #在间隙时间40S内在浏览器中输入账号、密码、验证码等手动完成登录操作即可
        driver.get("http://10.124.XXX.XXX/#/login")
        time.sleep(40)
        
        # 获取登录后的cookies。可以根据获取的cookie自定义,选取cookie中的关键信息,以便后续访问其他页面
        #笔者要的cookie中关键信息是第3组数据,通过cookie1[2]获取,图中也有展示。
        cookie1 = driver.get_cookies()
        print("登录后的cookies值:", cookie1[2])
        cookie = cookie1[2]

        #访问已登录状态才能访问的页面
        driver.add_cookie(cookie)
        driver.get("http://10.124.XXX.XXX/#/user/personal/company")
        time.sleep(5)

if __name__ == '__main__':
    r = SkipCaptcha()
    r.login()

在这里插入图片描述

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值