Python+Selenium自动化测试
点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快一、项目介绍目的测试某官方网站登录功能模块可以正常使用用例1.输入格式正确的用户名和正确的密码验证是否登录成功2.输入格式正确的用户名和不正确的密码验证是否登录失败并且提示信息正确3.输入格式正确的用户名和任意密码验证是否登录失败并且提示信息正确4.用户名和密码两者都为空验证是否登录失败并且提示信息正确5.用户名和密码两者之一为空验证是否登录失败并且提示信息正确环境Windows10 Python3.6selenium3.13Pycharm环境我想大多数人都会搭建有事没事找百度一搜一箩筐哈哈我自己刚学的时候也是各种问题各种百度好在都解决了感谢有度娘这么强大的存在这里就不写环境怎么搭建了直接进入主题。二、脚本设计目的我们的测试脚本需要达到脚本可移植脚本模块化测试数据分离输出测试报告 等目的脚本设计模式代码实现项目目录结构注下面的文件存放在同一个目录下1 #! user/bin/python 2 3 代码说明麦子学院登录模块自动化测试用例脚本 4 编写日期 5 设置者linux超 6 7 8 import time 9 from selenium import webdriver 10 from webinfo import webinfo 11 from userinfo import userinfo 12 from log_fiile import login_log 13 from pathlib import Path 14 15 def open_web(): 16 driver webdriver.Firefox() 17 driver.maximize_window() 18 return driver 19 20 def load_url(driver,ele_dict): 21 driver.get(ele_dict[Turl]) 22 time.sleep(5) 23 24 def find_element(driver,ele_dict): 25 # find element 26 driver.find_element_by_class_name(ele_dict[image_id]).click() 27 if text_id in ele_dict: 28 driver.find_element_by_link_text(登录).click() 29 30 user_id driver.find_element_by_id(ele_dict[userid]) 31 pwd_id driver.find_element_by_id(ele_dict[pwdid]) 32 login_id driver.find_element_by_id(ele_dict[loginid]) 33 return user_id,pwd_id,login_id 34 35 def send_val(ele_tuple,arg): 36 # input userinfo 37 listkey [uname,pwd] 38 i 0 39 for key in listkey: 40 ele_tuple[i].send_keys() 41 ele_tuple[i].clear() 42 ele_tuple[i].send_keys(arg[key]) 43 i1 44 ele_tuple[2].click() 45 def check_login(driver,ele_dict,log,userlist): 46 result False 47 time.sleep(3) 48 try: 49 err driver.find_element_by_id(ele_dict[error]) 50 driver.save_screenshot(err.text.png) 51 log.log_write(账号:%s 密码:%s 提示信息:%s:failed\n %(userlist[uname],userlist[pwd],err.text)) 52 print(username or password error) 53 except: 54 print(login success!) 55 log.log_write(账号:%s 密码:%s :passed\n%(userlist[uname],userlist[pwd])) 56 #login_out(driver,ele_dict) 57 return True 58 return result 59 def login_out(driver,ele_dict): 60 driver.find_element_by_class_name(ele_dict[logout]).click() 61 62 def screen_shot(err): 63 i 0 64 save_path rD:\pythondcode\capture 65 capturename \\str(i).png 66 wholepath save_pathcapturename 67 if Path(save_path).is_dir(): 68 pass 69 else: 70 Path(save_path).mkdir() 71 while Path(save_path).exists(): 72 i1 73 capturename \\str(i).png 74 wholepath save_path capturename 75 err.screenshot(wholepath) 76 77 def login_test(): 78 log login_log() 79 #ele_dict {url: http://www.maiziedu.com/, text_id: 登录, user_id: id_account_l, pwd_id: id_password_l 80 #, login_id: login_btn,image_id:close-windows-btn7,error_id:login-form-tips} 81 ele_dict webinfo(rD:\pythoncode\webinfo.txt) 82 #user_list[{uname:account,pwd:pwd}] 83 user_list userinfo(rD:\pythoncode\userinfo.txt) 84 driver open_web() 85 # load url 86 load_url(driver,ele_dict) 87 #find element 88 ele_tuple find_element(driver,ele_dict) 89 # send values 90 ftitle time.strftime(%Y-%m-%d, time.gmtime()) 91 log.log_write(\t\t\t%s登录系统测试报告\n % (ftitle)) 92 for userlist in user_list: 93 send_val(ele_tuple,userlist) 94 # check login success or failed 95 result check_login(driver,ele_dict,log,userlist) 96 if result: 97 login_out(driver,ele_dict) 98 time.sleep(3) 99 ele_tuple find_element(driver,ele_dict) 100 time.sleep(3) 101 log.log_close() 102 driver.quit() 103 104 if __name__ __main__: 105 login_test()1 #! user/bin/python 2 3 代码说明从文本文档中读取用户信息 4 编写日期 5 设置者linux超 6 7 8 import codecs 9 10 def userinfo(path): 11 file codecs.open(path,r,utf-8) 12 user_list [] 13 for line in file: 14 user_dict {} 15 result [ele.strip() for ele in line.split(;)] 16 for sult in result: 17 re_sult [ele.strip() for ele in sult.split()] 18 user_dict.update(dict([re_sult])) 19 user_list.append(user_dict) 20 return user_list 21 22 if __name__ __main__: 23 user_list userinfo(rD:\pythoncode\userinfo.txt) 24 print(user_list)1 #! user/bin/python 2 3 代码说明从文本文档中读取web元素 4 编写日期 5 设置者linux超 6 7 8 import codecs 9 10 def webinfo(path): 11 file codecs.open(path,r,gbk) 12 ele_dict {} 13 for line in file: 14 result [ele.strip() for ele in line.split()] 15 ele_dict.update(dict([result])) 16 return ele_dict 17 18 if __name__ __main__: 19 ele_dict webinfo(rD:\pythoncode\webinfo.txt) 20 for key in ele_dict: 21 print(key,ele_dict[key])1 #! user/bin/python 2 3 代码说明测试输出报告 4 编写日期 5 设置者linux超 6 7 8 import time 9 10 class login_log(object): 11 def __init__(self,path,modew): 12 filename path time.strftime(%Y-%m-%d,time.gmtime()) 13 self.log open(pathfilename.txt,mode) 14 def log_write(self,msg): 15 self.log.write(msg) 16 def log_close(self): 17 self.log.close() 18 if __name__ __main__: 19 loglogin_log() 20 ftitle time.strftime(%Y-%m-%d,time.gmtime()) 21 log.log_write(xiaochao11520) 22 log.log_close()1 uname273839363qq.com;pwdxiaochao11520 2 uname273839363;pwdxiaochao11520 3 uname ;pwdxiaochao11520 4 uname273839363qq.com;pwd 5 uname2738;pwdxiaochao1 Turlhttp://www.maiziedu.com/ 2 text_id登录 3 useridid_account_l 4 pwdidid_password_l 5 loginidlogin_btn 6 errorlogin-form-tips 7 logoutsign_out 8 image_idclose-windows-btn7最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。

相关新闻

性能测试监控指标及分析调优指南

性能测试监控指标及分析调优指南

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、哪些因素会成为系统的瓶颈CPU:如果存在大量的计算,他们会长时间不间断的占用CPU资源,导致其他资源无法争夺到CPU而响应缓慢…

2026/7/6 8:17:26 阅读更多 →
小白程序员必看:收藏这份Agent技术学习路线图,从入门到精通大模型!

小白程序员必看:收藏这份Agent技术学习路线图,从入门到精通大模型!

本文提供了一套系统化的Agent技术学习路线,分为基础筑基、核心概念与工具、项目实践与深化、精通与进阶四个阶段。涵盖Python编程、LLM基础、软件工程、Agent核心概念、主流框架如LangChain等实践内容,通过入门和进阶项目帮助读者将知识融会贯通&#xf…

2026/7/5 17:28:38 阅读更多 →
对比一圈后!千笔AI,口碑爆棚的降AI率网站

对比一圈后!千笔AI,口碑爆棚的降AI率网站

在AI技术迅速发展的今天,越来越多的学生开始借助AI工具辅助论文写作,提升效率和质量。然而,随着知网、维普、万方等查重系统不断升级算法,以及Turnitin对AIGC(人工智能生成内容)的识别愈发严格,…

2026/7/5 10:25:32 阅读更多 →

最新新闻

深入理解openeuler/xmlpull架构:核心组件与工作原理

深入理解openeuler/xmlpull架构:核心组件与工作原理

深入理解openeuler/xmlpull架构:核心组件与工作原理 【免费下载链接】xmlpull This package provides xml pull parsing API 项目地址: https://gitcode.com/openeuler/xmlpull 前往项目官网免费下载:https://ar.openeuler.org/ar/ openeuler/xm…

2026/7/6 8:21:47 阅读更多 →
Android设备完整性检测实战:Play Integrity API Checker工具使用与集成指南

Android设备完整性检测实战:Play Integrity API Checker工具使用与集成指南

1. 项目概述:为什么我们需要Play Integrity API Checker?在Android应用开发与安全对抗的战场上,我见过太多因为设备环境不可信而导致的“惨案”。一个精心设计的应用内购验证逻辑,可能因为用户设备被Root而形同虚设;一…

2026/7/6 8:21:47 阅读更多 →
3天掌握YOLO目标检测:从环境搭建到实战训练全流程指南

3天掌握YOLO目标检测:从环境搭建到实战训练全流程指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 1. 先搞清楚“3天学透YOLO”到底在说什么 看到“3天学透YOLO全系列”这种标题,第一反应往往是怀疑。YOLO从v1到v13&#…

2026/7/6 8:19:47 阅读更多 →
java017期_java小程序+大后台web商城源码

java017期_java小程序+大后台web商城源码

java小程序大后台web商城源码 基于ssm的一款电子商城,系统采用maven的父子结构, 1、后台web商城包含的模块有: 会员管理、商城配置、编辑商品、订单管理、推广管理、系统管理等大模块, 每个大模块包含至少6个子模块,功…

2026/7/6 8:19:47 阅读更多 →
Windows右键菜单深度解析:从杂乱到有序的工作流重构实践

Windows右键菜单深度解析:从杂乱到有序的工作流重构实践

Windows右键菜单深度解析:从杂乱到有序的工作流重构实践 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 作为Windows用户,你是否经历过这…

2026/7/6 8:17:47 阅读更多 →
SQL集合运算符深度解析:UNION、INTERSECT、EXCEPT原理与避坑指南

SQL集合运算符深度解析:UNION、INTERSECT、EXCEPT原理与避坑指南

1. 为什么我坚持把 SQL 集合运算符讲透——不是为了炫技,而是因为90%的日常数据清洗都卡在这一步 你有没有遇到过这样的场景:老板甩来两份Excel表格,一份是上季度新注册用户,一份是本月完成首单的用户,让你“快速拉个名…

2026/7/6 8:17:47 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

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/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

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

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

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

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

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

2026/7/6 6:52:56 阅读更多 →

月新闻