selenium利用cookie跳过验证码登录

news/2024/5/18 12:01:42 标签: 软件测试, selenium, cookie, python

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()

在这里插入图片描述


http://www.niftyadmin.cn/n/1548394.html

相关文章

python用matplotlib画表格_Python图表绘制工具:Matplotlib_Part 1

序言:Python的可视化工具,以下截图,均以展示图表实例,如需了解部分对象的输出结果,可参照我Github上的代码,3Q🌹【课程3.1】 Matplotlib简介及图表窗口Matplotlib → 一个python版的matlab绘图接口&#xf…

MYSQL学习心得(2) --使用MySQL的LAST_INSERT_ID

LAST_INSERT_ID 自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里 The ID that was generated is maintained in the server on a per-connection basis. LAST_INSERT_ID是基于单个connection的, 不可能被其它的客户端连接改变。…

调动工作

今天回单位办理调动手续,中午部门同事欢送我。一天下来终于办完了,只要下周到新单位报到我就算是换工作了。现在开始应该算不是原单位的人了,哈。从毕业起一直在这个单位,到现在有9年了。9年里在这个单位换了多个部门,…

mysql使用中的常见错误

mysql使用中的常见错误 问题1: 启动报:发生系统错误 5。拒绝访问。 解决方法: 启动时,以管理员身份运行即可,window10 点击左下角徽标 — 选择windows powershell(管理员)打开 — 再执行mys…

MYSQL学习心得(3) --浮点数与定点数

MySQL中使用浮点数类型和定点数类型来表示小数。 浮点数类型包括单精度浮点数(float型)和双精度浮点数(double型)。定点数类型就是decimal型。 OK,现在我们来看看这几种数据类型的取值范围和存数的字节数。 关于上…

python关于json文件的读取写入实战

一、理解 为什么要用json模块的格式读取写入? 1、由于python默认读取write()写入read()文件的数据格式为字符串(str),不能读取写入列表、字典等类型数据,所以需要采用json数据格式来存储数据。 2、json数据格式在多种语言中通用…

python模拟鼠标键盘有哪些库_python自带模块模拟鼠标和键盘操作

复制自:https://www.cnblogs.com/wumac/p/5994923.htmlimport win32apiimport win32conimport win32guifrom ctypes import *import timeVK_CODE {‘backspace‘:0x08,‘tab‘:0x09,‘clear‘:0x0C,‘enter‘:0x0D,‘shift‘:0x10,‘ctrl‘:0x11,‘alt‘:0x12,‘pa…

图书 ERP理论 方法与实践 目录

第1章 导论 11.1 财富、制造业和竞争 11.2 制造业悖论——一些难解而又必须解的问题 21.3 制造业基本方程和MRP 41.4 ERP能够做什么 51.5 可靠的路线——坚持走正确的路,“不要让计算机尾巴摇动了1.5 公司大象” 101.6 ERP及相关名词简析…