Web自动化测试—登录问题
一、登录问题的解决const.py中代码from selenium.webdriver.chrome.service import Service URL DRIVER_PATH Service(../../chromedriver.exe)main.py中代码import pytest if __name__ __main__: pytest.main([-vs, -p, no:warnings, ./])test_login.py中代码import time from selenium import webdriver from selenium.webdriver.common.service import Service from const import URL, DRIVER_PATH from selenium.webdriver.common.by import By def test_login_success(): service Service(DRIVER_PATH) driver webdriver.Chrome(serviceservice) driver.maximize_window() driver.get(URL) driver.find_element(By.LINK_TEXT, 请登录).click() username driver.find_element(By.CSS_SELECTOR, [typetext]) username.send_keys(USERNAME) password driver.find_element(By.CSS_SELECTOR, [typepassword]) password.send_keys(PASSWORD) login_button driver.find_element(By.CSS_SELECTOR, [typebutton]) login_button.click() # 我们应该如何判断登录是成功还是失败应该如何断言 time.sleep(3) assert driver.current_url 登录跳转的url二、统一driver配置优化解决传统方式在每个测试方法中单独启动浏览器导致重复初始化将driver配置提升至会话级别通过conftest.py文件实现共享import pytest from selenium import webdriver from selenium.webdriver.common.service import Service from const import DRIVER_PATH pytest.fixture(scopesession) def get_webdriver(): service Service(DRIVER_PATH) driver webdriver.Chrome(serviceservice) return drivertset_login.py中添加代码def test_login2_success(get_webdriver): driver get_webdriver driver.maximize_window() driver.get(URL) driver.find_element(By.LINK_TEXT, 请登录).click() username driver.find_element(By.CSS_SELECTOR, [typetext]) username.send_keys(USERNAME) password driver.find_element(By.CSS_SELECTOR, [typepassword]) password.send_keys(PASSWORD) login_button driver.find_element(By.CSS_SELECTOR, [typebutton]) login_button.click() # 我们应该如何判断登录是成功还是失败应该如何断言 time.sleep(3) assert driver.current_url 登录跳转的url三、示例——解决京东登录问题1、方法一import time from selenium import webdriver from selenium.webdriver.common.service import Service from const import URL, DRIVER_PATH from selenium.webdriver.common.by import By import pytest def test_jingdong_login(get_webdriver): driver get_webdriver driver.get(https://www.jd.com) driver.find_element(byBy.CSS_SELECTOR, value[classlink-login]).click() # 下边的代码会一直循环 # 直到我用手机扫码登录成功了它才不循环了 while True: print(driver.current_url) if driver.current_url https://www.jd.com: break time.sleep(3) print(登录成功) driver.find_element(byBy.LINK_TEXT, value我的购物车).click() time.sleep(3)2、方法二优化通过携带Cookie实现登录状态保持适用于任何项目的登录问题解决方案注意上面的test_jingdong_login要加上pytest.mark.skipdef test_jingdong_cookie_demo(get_webdriver): driver get_webdriver driver.get(https://www.jd.com) driver.find_element(byBy.CSS_SELECTOR, value[classlink-login]).click() # 下边的代码会一直循环 # 直到我用手机扫码登录成功了它才不循环了 while True: print(driver.current_url) if driver.current_url https://www.jd.com: break time.sleep(3) print(driver.get_cookies()) print(登录成功) # cookies []中写上面print(driver.get_cookies())打印出来的 def test_jingdong_cart_info(get_webdriver): cookies [{domain: .jd.com, expiry: 245647585, httponly: True, path: /}] driver get_webdriver driver.get(https://www.jd.com) # 添加cookies for c in cookies: driver.add_cookie(c) driver.find_element(byBy.LINK_TEXT, value我的购物车).click() time.sleep(3)

相关新闻

FastestDet:超越业界轻量级目标检测算法的五大特性

FastestDet:超越业界轻量级目标检测算法的五大特性

超轻量级目标检测器FastestDet [1]相比于业界已有的轻量级目标检测算法如yolov5n, yolox-nano, nanoDet, pp-yolo-tiny, FastestDet和这些算法压根儿不是一个量级,FastestDet无论在速度还是参数量上,都是要小好几个数量级。 [2]拥有以下五大特性 1、单轻…

2026/7/6 1:14:59 阅读更多 →
对langChain4j的补充

对langChain4j的补充

对于chatmemory的补充MessageWindowChatMemory 是 LangChain4j 提供的「消息窗口对话记忆」组件,它本身是内存级的缓存层(控制最多存 20 条消息),但通过绑定 redisChatMemoryStore(Redis 实现的 ChatMemoryStore&#…

2026/7/7 18:10:32 阅读更多 →
用Anki高效啃透华工通信原理:自制考点卡片模板分享(含HDB3编码/匹配滤波器真题)

用Anki高效啃透华工通信原理:自制考点卡片模板分享(含HDB3编码/匹配滤波器真题)

用Anki重塑通信原理学习:从被动记忆到主动构建知识网络 又到了期末复习季,看着那本厚厚的《通信原理》,是不是感觉知识点像散落的珍珠,捡起这颗,又丢了那颗?传统的划重点、背公式,往往陷入“一看…

2026/5/17 11:26:31 阅读更多 →

最新新闻

CCS Theia 安装多版本编译器.LTS

CCS Theia 安装多版本编译器.LTS

1.下载需要安装的编译器2.下载需要的版本:如:ti_cgt_c2000_22.6.3.LTS_windows-x64_installer.exe双击安装3.把需要安装的编译器安装到 CCS 的根目录,如:D:/ti如果有安装好的可以复制:把需要安装的编译器复制到 CCS 的…

2026/7/8 3:53:53 阅读更多 →
量化软件对比别只看排名:普通用户要拆三类工具

量化软件对比别只看排名:普通用户要拆三类工具

量化软件对比里,排名常常不如分类有用。普通用户先看能不能读懂规则、回测、提醒和风控;技术用户再看数据接口、策略函数和日志;接近实盘执行的人还要核对券商权限、委托和成交。牛股王股票这类面向普通投资者的量化辅助软件,适合…

2026/7/8 3:53:53 阅读更多 →
虚拟角色AI助手开发指南:从设定到工程化实现

虚拟角色AI助手开发指南:从设定到工程化实现

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 1. 先搞清楚这个标题到底在说什么 看到这个标题,很多人第一反应可能是“这是什么游戏角色还是AI助手?”其实这…

2026/7/8 3:53:53 阅读更多 →
B站视频转换终极指南:5分钟拯救你的珍贵缓存视频

B站视频转换终极指南:5分钟拯救你的珍贵缓存视频

B站视频转换终极指南:5分钟拯救你的珍贵缓存视频 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾有过这样的经历&#xff1f…

2026/7/8 3:51:52 阅读更多 →
计算机毕业设计之健康管理系统

计算机毕业设计之健康管理系统

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…

2026/7/8 3:49:52 阅读更多 →
当 AI 生成的样式需要一间独立房间:Shadow DOM 与 CSS Modules 的样式隔离对决

当 AI 生成的样式需要一间独立房间:Shadow DOM 与 CSS Modules 的样式隔离对决

当 AI 生成的样式需要一间独立房间:Shadow DOM 与 CSS Modules 的样式隔离对决 一、深度引言与场景痛点 AI 生成的组件代码带着自己的样式行李——一段 CSS 声明打包在组件内部,颜色、间距、字号都是自给自足的。当这段代码进入设计系统仓库,…

2026/7/8 3:45:51 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻