恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

selenium之封装和自动化

  • 首页
  • 资讯中心
  • /
  • selenium之封装和自动化

相关资讯

Go 并发编程实战:4 个生产级项目带你打通并发全链路 2026/10/8 6:56:24
MCP协议:重塑AI与工具协同的底层通信标准 2026/10/8 6:56:24
Writeup 4 N1BOOK afr_2 2026/10/8 6:51:24

最新资讯

NDIS6 Miniport驱动开发实战:从环境搭建到收发帧闭环
YOLOv8工业电子围栏系统:危险区域实时检测与产线联动
电源路径保护设计:eFuse与MCU协同,打造可靠嵌入式供电系统
TPS259483AYWPR+PIC32MX360F512L工业级主动电源保护方案
基于TPS259483电子熔丝与TM4C1299的工业电源路径保护设计
Superpowers技能包:让AI编程助手从问答到主动执行

今日推荐

context-mode实战指南:从全量塞入到结构化裁剪与检索增强
大模型对话上下文管理实战:三种模式与Token优化
抖音用户主页视频数据爬虫详解:点赞、收藏、分享字段抓取与 TaoToken 统一 Key 配置

本周热门

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

selenium之封装和自动化

发布时间:2026/10/8 6:56:24
selenium之封装和自动化 一、设计自动化例场景并封装网站http://49.233.201.254:8080/cms/manage/login.do案例1登录场景账号密码登录按钮from selenium import webdriverimport timedxwebdriver.Chrome() #创建webdriver设置浏览器dx.get(http://49.233.201.254:8080/cms/manage/login.do) # 打开浏览器dx.maximize_window() #窗口最大化time.sleep(2) # 休眠dx.find_element_by_id(userAccount).send_keys(admin) #账号time.sleep(2) #休眠dx.find_element_by_id(loginPwd).send_keys(123456) #密码time.sleep(2)dx.find_element_by_id(loginBtn).click() #登录按钮案例2场景登录退出from selenium import webdriverimport timedxwebdriver.Chrome() #创建webdriver设置浏览器dx.get(http://49.233.201.254:8080/cms/manage/login.do) # 打开浏览器dx.maximize_window() #窗口最大化time.sleep(2) # 休眠dx.find_element_by_id(userAccount).send_keys(admin) #账号time.sleep(2) #休眠dx.find_element_by_id(loginPwd).send_keys(123456) #密码time.sleep(2)dx.find_element_by_id(loginBtn).click() #登录按钮time.sleep(2)dx.find_element_by_xpath(/html/body/header/span[2]/a).click() #退出案例3登录用户管理from selenium import webdriverimport timedxwebdriver.Chrome() #创建webdriver设置浏览器dx.get(http://49.233.201.254:8080/cms/manage/login.do) # 打开浏览器dx.maximize_window() #窗口最大化time.sleep(2) # 休眠dx.find_element_by_id(userAccount).send_keys(admin) #账号time.sleep(2) #休眠dx.find_element_by_id(loginPwd).send_keys(123456) #密码time.sleep(2)dx.find_element_by_id(loginBtn).click() #登录按钮time.sleep(2)dx.find_element_by_xpath(//*[idmenu-user]).click() #用户管理案例4登录系统管理#用户管理系统管理from selenium import webdriverimport timedxwebdriver.Chrome() #创建webdriver设置浏览器dx.get(http://49.233.201.254:8080/cms/manage/login.do) # 打开浏览器dx.maximize_window() #窗口最大化time.sleep(2) # 休眠dx.find_element_by_id(userAccount).send_keys(admin) #账号time.sleep(2) #休眠dx.find_element_by_id(loginPwd).send_keys(123456) #密码time.sleep(2)dx.find_element_by_id(loginBtn).click() #登录按钮time.sleep(2)dx.find_element_by_xpath(//*[idmenu-system]).click()案例5登录用户中心用户管理# 登录用户中心用户管理from selenium import webdriverimport timedxwebdriver.Chrome() #创建webdriver设置浏览器dx.get(http://49.233.201.254:8080/cms/manage/login.do) # 打开浏览器dx.maximize_window() #窗口最大化time.sleep(2) # 休眠dx.find_element_by_id(userAccount).send_keys(admin) #账号time.sleep(2) #休眠dx.find_element_by_id(loginPwd).send_keys(123456) #密码time.sleep(2)dx.find_element_by_id(loginBtn).click() #登录按钮time.sleep(2)dx.find_element_by_xpath(//*[idmenu-user]).click() #用户中心time.sleep(2)dx.find_element_by_link_text(用户管理).click() #用户管理二、封装起来用一个类写5个用例用5个函数案例1from selenium import webdriverfrom time import *class Cms(object):def __init__(self):passdef dl(self):self.dxwebdriver.Chrome()self.dx.get(http://49.233.201.254:8080/cms/manage/login.do)sleep(2)self.dx.find_element_by_id(userAccount).send_keys(admin) #账号sleep(2)self.dx.find_element_by_id(loginPwd).send_keys(123456) #密码sleep(2)self.dx.find_element_by_id(loginBtn).click() #登录按钮sleep(2)def q(self):self.dl()self.dx.find_element_by_xpath(/html/body/header/span[2]/a).click() # 退出sleep(20)self.dx.close()def yhzx(self):self.dl()self.dx.find_element_by_xpath(//*[idmenu-user]).click() # 用户中心def xtgl(self):self.dl()self.dx.find_element_by_xpath(//*[idmenu-system]).click()#系统管理sleep(20)self.dx.close()def yhgl(self):self.dl()self.dx.find_element_by_xpath(//*[idmenu-user]).click() #用户中心sleep(2)self.dx.find_element_by_link_text(用户管理).click() #用户管理sleep(20)self.dx.close()if __name__ __main__:dx1Cms()# dx1.dl()# dx1.yhzx()# dx1.xtgl()dx1.q()# dx1.yhgl()案例2from selenium import webdriverfrom time import *class Cms(object):def __init__(self):passdef dl(self):self.dxwebdriver.Chrome()self.dx.get(http://49.233.201.254:8080/cms/manage/login.do)sleep(2)self.dx.find_element_by_id(userAccount).send_keys(admin) #账号sleep(2)self.dx.find_element_by_id(loginPwd).send_keys(123456) #密码sleep(2)self.dx.find_element_by_id(loginBtn).click() #登录按钮sleep(2)def q(self):self.dx.find_element_by_xpath(/html/body/header/span[2]/a).click() # 退出sleep(20)def yhzx(self):self.dx.find_element_by_xpath(//*[idmenu-user]).click() # 用户中心sleep(3)def xtgl(self):self.dx.find_element_by_xpath(//*[idmenu-system]).click()#系统管理sleep(3)def yhgl(self):self.dx.find_element_by_link_text(用户管理).click() #用户管理sleep(3)if __name__ __main__:dx1Cms()dx1.dl()dx1.yhzx()dx1.yhgl()dx1.xtgl()dx1.q()二、unittest框架1介绍框架1、unittest 框架是python中自带的框架2、作用管理和组织测试用例当我们写的用例越来越多我们就要考虑用例的编写的规范和组织以便于后期的维护3、常见的自动化框架po框架、pytest 框架、unittest框架我们讲解4、unitest 框架自带标准的库有如下a、TestCase类 测试用例b、TestSuite类 测试套件c、TestLoader类 测试路径d、TextTestRunner类 测试运行e、TextTestResult类 测试结果f、TestFixture类 测试前后准备案例1执行所有测试用例import unittest #导入unittest 框架class Cms_kj(unittest.TestCase): #创建一个类继承unittest.TestCase#类的方法classmethoddef setUpClass(cls) - None:print(类开始)classmethoddef tearDownClass(cls) - None:print(类结束)def setUp(self) - None:print(方法开始)def tearDown(self) - None:print(方法结束)def test1(self):print(1)def testa(self):print(a)def test3(self):print(3)def testA(self):print(A)def dy(self):print(独有)if __name__ __main__:unittest.main() #执行所有的用例注意点1用例开头都是要用test开头不用test开头就不运行2运行的顺序ascllma标准0-9 A-Z a-z3类的开始和类的结束在框架就执行一次4方法开始和方法结束每一条用来都会执行一遍5执行所有带test开头的用例案例2执行部分测试用例import unittest #导入unittest 框架class Cms_kj(unittest.TestCase): #创建一个类继承unittest.TestCase#类的方法classmethoddef setUpClass(cls) - None:print(类开始)classmethoddef tearDownClass(cls) - None:print(类结束)def setUp(self) - None:print(方法开始)def tearDown(self) - None:print(方法结束)def test1(self):print(1)def testa(self):print(a)def test3(self):print(3)def testA(self):print(A)def dy(self):print(独有)if __name__ __main__:# unittest.main() #执行全部用例tjunittest.TestSuite() #创建一个对象来接受套件中的用例# tj.addTest(Cms_kj(test3)) #addtest 添加用例 类名用例名tj.addTests([Cms_kj(test3),Cms_kj(testA)])unittest.TextTestRunner().run(tj) #TextTestRunner运行用例注意点1、运行的是当前的模块配置环境变量地址找到当前py文件copy path复制绝对路径点击编辑python“号”填写绝对路径和相对路径案例3执行一个路径下的测试用例import unittest #导入unittest 框架class Cms_kj(unittest.TestCase): #创建一个类继承unittest.TestCase#类的方法classmethoddef setUpClass(cls) - None:print(类开始)classmethoddef tearDownClass(cls) - None:print(类结束)def setUp(self) - None:print(方法开始)def tearDown(self) - None:print(方法结束)def test1(self):print(1)def testa(self):print(a)def test3(self):print(3)def testA(self):print(A)def dy(self):print(独有)if __name__ __main__:# unittest.main() #执行全部用例# tjunittest.TestSuite() #创建一个对象来接受套件中的用例# # tj.addTest(Cms_kj(test3)) #addtest 添加用例 类名用例名# tj.addTests([Cms_kj(test3),Cms_kj(testA)])# unittest.TextTestRunner().run(tj) #TextTestRunner运行用例pathrC:\Users\Administrator\PycharmProjects\untitled\ui #定义个相对路径存放用例的相对路径dunittest.TestLoader().discover(start_dirpath,patternui*.py) #unittest.TestLoader()根据路径匹配执行的py文件unittest.TextTestRunner().run(d) #TextTestRunner 运行搜索路径下的用例案例5执行一个路径下的测试用例并生成报告报告模板下载一个报告模板拖拽到pycarm中import unittest #导入unittest 框架from time import *from ui.HTMLTestRunnerNew import HTMLTestRunnerclass Cms_kj(unittest.TestCase): #创建一个类继承unittest.TestCase#类的方法classmethoddef setUpClass(cls) - None:print(类开始)classmethoddef tearDownClass(cls) - None:print(类结束)def setUp(self) - None:print(方法开始)def tearDown(self) - None:print(方法结束)def test1(self):print(1)def testa(self):print(a)def test3(self):print(3)def testA(self):print(A)def dy(self):print(独有)if __name__ __main__:# unittest.main() #执行全部用例# tjunittest.TestSuite() #创建一个对象来接受套件中的用例# # tj.addTest(Cms_kj(test3)) #addtest 添加用例 类名用例名# tj.addTests([Cms_kj(test3),Cms_kj(testA)])# unittest.TextTestRunner().run(tj) #TextTestRunner运行用例# pathrC:\Users\Administrator\PycharmProjects\untitled\ui #定义个相对路径存放用例的相对路径# dunittest.TestLoader().discover(start_dirpath,patternui*.py) #unittest.TestLoader()根据路径匹配执行的py文件# unittest.TextTestRunner().run(d) #TextTestRunner 运行搜索路径下的用例pathrC:\Users\Administrator\PycharmProjects\untitled\ui #定义个相对路径存放用例的相对路径dunittest.TestLoader().discover(start_dirpath,patternui*.py) #bg_pathrC:\Users\Administrator\PycharmProjects\untitled\ui #定义个相对路径存放用例的相对路径newstrftime(%y-%m-%d %H-%M-%S) #时间戳filebg_path/str(new)ui_.html #报告的路径生成时间生成文档的后缀fopen(file,bw) #打开报告 b 二进制的方式 w写入HTMLTestRunner(自动化测试报告,description用例执行情况:,testerdcs67).run(d)写5条用例跑出报告结合cms写结合实际项目编写案例1执行所有的用例import unittestfrom selenium import webdriverfrom time import *class Cms(unittest.TestCase):classmethoddef setUpClass(cls) - None:passclassmethoddef tearDownClass(cls) - None:passdef setUp(self) - None:self.dx webdriver.Chrome()self.dx.get(http://49.233.201.254:8080/cms/manage/login.do)sleep(2)self.dx.find_element_by_id(userAccount).send_keys(admin) # 账号sleep(2)self.dx.find_element_by_id(loginPwd).send_keys(123456) # 密码sleep(2)self.dx.find_element_by_id(loginBtn).click() # 登录按钮sleep(2)def tearDown(self) - None:sleep(10)self.dx.close()def test1(self):self.dx.find_element_by_xpath(//*[idmenu-user]).click()def test2(self):self.dx.find_element_by_xpath(//*[idmenu-system]).click()#系统管理def testa(self):self.dx.find_element_by_xpath(//*[idmenu-user]).click()sleep(2)self.dx.find_element_by_link_text(用户管理).click() # 用户管理def testA(self):self.dx.find_element_by_xpath(/html/body/header/span[2]/a).click() # 退出def dy(self):print(dy)if __name__ __main__:unittest.main()案例2执行部分用例或指定用例TestSuite()套件addTests添加用例注意点右键运行是运行整个框架我们运行当前模块设置环境变量import unittestfrom selenium import webdriverfrom time import *class Cms(unittest.TestCase):classmethoddef setUpClass(cls) - None:passclassmethoddef tearDownClass(cls) - None:passdef setUp(self) - None:self.dx webdriver.Chrome()self.dx.get(http://49.233.201.254:8080/cms/manage/login.do)sleep(2)self.dx.find_element_by_id(userAccount).send_keys(admin) # 账号sleep(2)self.dx.find_element_by_id(loginPwd).send_keys(123456) # 密码sleep(2)self.dx.find_element_by_id(loginBtn).click() # 登录按钮sleep(2)def tearDown(self) - None:sleep(10)self.dx.close()def test1(self):self.dx.find_element_by_xpath(//*[idmenu-user]).click()def test2(self):self.dx.find_element_by_xpath(//*[idmenu-system]).click()#系统管理def C(self):self.dx.find_element_by_xpath(//*[idmenu-user]).click()sleep(2)self.dx.find_element_by_link_text(用户管理).click() # 用户管理def testA(self):self.dx.find_element_by_xpath(/html/body/header/span[2]/a).click() # 退出def dy(self):print(dy)if __name__ __main__:# unittest.main()tjunittest.TestSuite() #TestSuite()套件# tj.addTest(Cms(testA)) #addTest 添加用例tj.addTests([Cms(testA),Cms(test1)])unittest.TextTestRunner().run(tj) #运行用例案例3执行一个路径下用例unittest.TestLoader()import unittestfrom selenium import webdriverfrom time import *class Cms(unittest.TestCase):classmethoddef setUpClass(cls) - None:passclassmethoddef tearDownClass(cls) - None:passdef setUp(self) - None:self.dx webdriver.Chrome()self.dx.get(http://49.233.201.254:8080/cms/manage/login.do)sleep(2)self.dx.find_element_by_id(userAccount).send_keys(admin) # 账号sleep(2)self.dx.find_element_by_id(loginPwd).send_keys(123456) # 密码sleep(2)self.dx.find_element_by_id(loginBtn).click() # 登录按钮sleep(2)def tearDown(self) - None:sleep(10)self.dx.close()def test1(self):self.dx.find_element_by_xpath(//*[idmenu-user]).click()def test2(self):self.dx.find_element_by_xpath(//*[idmenu-system]).click()#系统管理def C(self):self.dx.find_element_by_xpath(//*[idmenu-user]).click()sleep(2)self.dx.find_element_by_link_text(用户管理).click() # 用户管理def testA(self):self.dx.find_element_by_xpath(/html/body/header/span[2]/a).click() # 退出def dy(self):print(dy)if __name__ __main__:# unittest.main()# tjunittest.TestSuite() #TestSuite()套件# # tj.addTest(Cms(testA)) #addTest 添加用例# tj.addTests([Cms(testA),Cms(test1)])# unittest.TextTestRunner().run(tj) #运行用例test_pathrC:\Users\Administrator\PycharmProjects\untitled\uidunittest.TestLoader().discover(start_dirtest_path,patternui6*.py)print(d)unittest.TextTestRunner().run(d)案例执行一个路径下的用例并生成测试报告import unittestfrom selenium import webdriverfrom time import *from ui.HTMLTestRunnerNew import HTMLTestRunnerclass Cms(unittest.TestCase):classmethoddef setUpClass(cls) - None:passclassmethoddef tearDownClass(cls) - None:passdef setUp(self) - None:self.dx webdriver.Chrome()self.dx.get(http://49.233.201.254:8080/cms/manage/login.do)sleep(2)self.dx.find_element_by_id(userAccount).send_keys(admin) # 账号sleep(2)self.dx.find_element_by_id(loginPwd).send_keys(123456) # 密码sleep(2)self.dx.find_element_by_id(loginBtn).click() # 登录按钮sleep(2)def tearDown(self) - None:sleep(10)self.dx.close()def test1(self):self.dx.find_element_by_xpath(//*[idmenu-user]).click()def test2(self):self.dx.find_element_by_xpath(//*[idmenu-system]).click()#系统管理def C(self):self.dx.find_element_by_xpath(//*[idmenu-user]).click()sleep(2)self.dx.find_element_by_link_text(用户管理).click() # 用户管理def testA(self):self.dx.find_element_by_xpath(/html/body/header/span[2]/a).click() # 退出def dy(self):print(dy)if __name__ __main__:# unittest.main()# tjunittest.TestSuite() #TestSuite()套件# # tj.addTest(Cms(testA)) #addTest 添加用例# tj.addTests([Cms(testA),Cms(test1)])# unittest.TextTestRunner().run(tj) #运行用例# test_pathrC:\Users\Administrator\PycharmProjects\untitled\ui# dunittest.TestLoader().discover(start_dirtest_path,patternui6*.py)# print(d)# unittest.TextTestRunner().run(d)test_path rC:\Users\Administrator\PycharmProjects\untitled\uidunittest.TestLoader().discover(start_dirtest_path,patternui6*.py)bg_path rC:\Users\Administrator\PycharmProjects\untitled\uinewstrftime(%y-%m-%d %H-%M-%S)filebg_path/str(new)ui_.htmlfopen(file,bw)HTMLTestRunner(streamf,title自动化测试例,description执行用例情况,testerdcs).run(d)总结测试用例的讲解稿参考讲解1流程我们要建立这个框架首先需要导入unittest这个模块我们做自动化的话还需要导入selenium这个模块以及一些相关的比方说time模块OS模块HTMLTestRunner模块。把我们需要的模块都导入在unittest里我们需要去定义一个类定义类名继承testcase一个testcase的实例就是一个用例类里需要有类的开始setupclass以及类的结束teardownclass然后我们需要去定义我们的用例test1test2注意一定要以test开头因为TestLoader只搜索所有以test开头的测试用例。写完用例以后我们需要去调用它我们以main作为unittest的入口执行自动化我们主要有4种调用的方式第一种用unittest.main()去运行所有用例第二种是创建一个套件TestSuite()然后用addtest去添加你要执行的用例这种方法可以执行部分测试用例不会全部执行第三种就是搜索绝对路径去执行自动化调用unittest.testloader.discover方法执行用例第四种是生成测试报告搜索绝对路径去执行自动化调用unittest.testloader.discover方法执行用例然后把执行结果写入我们导入的模板文件执行之后就能看到我们路径下所有用例的执行结果。以上就是unittest框架的整个基本流程讲解2建立unittest框架流程第一步先导入unittest模块import unittest然后导入selenium模块from selenium import webdriver、时间模块from time import*等。第二步定义一个类给这个类取一个类名继承unittest.testcase一个testcase就是一个用例之后定义一个类方法类方法要有类的开始setUpClass和类的结束tearDownClass。第三步进行方法的开始setUp每一条用例执行他们都去执行之后是方法的结束tearDown。第四步写用例用例一定要用test开头》test1、test2没有以test开头的用例 不被运行。第五步调用函数使用main方法if __name____main__:进行主函数调用。第六步执行用例第一种可以用unittest.main()运行所有用例第二种可以创建一个套件TestSuite()然后用addtest去添加你要执行的用例这种方法可以执行部分测试用例不会全部执行第三种搜索绝对路径去执行自动化调用unittest.testloader.discover方法执行用例第四种生成测试报告搜索绝对路径去执行自动化调用unittest.testloader.discover方法执行用例然后把执行结果写入我们导入的模板文件执行之后就能看到我们路径下所有用例的执行结果。讲解3下面我介绍一下自动化框架的基本流程自动化框架是用来管理和组织测试用例的首先我们先导入unittest框架再导入本次测试应用到的一些模块比如time模块进行计时等等。接下来我们进行类的定义创建一个类一个testcase就是一个用例继承unittest.testcase定义类需要类的开始setUpClass()和类的结束tearDownClass() 在整个框架中只运行一次。为了减少代码的冗余我们需要进行方法的定义调用的时候直接使用这个方法名就可以了方法的开始setUp和tearDown结束每一条用例都会执行。然后我们进行用例定义用例要以test开头如果没有以test开头就不能运行运行顺序按ascllma标准排序0-9 A-Z a-z。用例编写完成之后我们进行用例的调用这里我们有四种方法1.unittest.main() #第一种执行方法执行所有的用例2.创建一个套件TestSuite()通过addtest添加用例到套件中通过TextTestRunner去运行套件中的用例3.根据运行文件的相对路径执行自动化测试通过unittest.TestLoader().discover匹配测试路径和文件 unittest.TextTestRunner().run(d) 运行路径d下的用例4.根据运行文件的相对路径执行自动化测试通过unittest.TestLoader().discover匹配测试路径和文件接下来把执行结果写入我们导入的模板文件执行之后就能看到我们路径下所有用例的执行结果。你做过自动化吗你怎么做的的自动化做过1、按照流程讲解自己做项目的一个场景2、通过自动化框架来做自动化测试讲解4我们自动化通过unittest框架来进行编写自动化测试用例首先导入unittest 框架 import unittest 创建一个类编写类名,继承unittset.testcase写类的开始setUpClass()和类的结束tearDownClass()类的开始和类的结束在整个自动化用例中只执行一次开头的时候和结尾的时候运行写方法开始setUp和方法结束tearDown写方法开始和方法结束在每条用例执行前后都会执行一次我们可以将重复执行的内容编写在方法开始和方法的结束中接下来在编写自动化测试用例用例要用test开头运行的顺序按ascllma标准排序0-9 A-Z a-z来运行所以用例名可以写成如test_login_1写完用例名在根据实际情况写自动化用例的场景如账号密码通过idname,xpath等定位元素去编写用例可以编写多条用例写完用例以后去运行运行方法有三种第一种unittest.main() 运行所有用例第二种通过TestSuite()套件addTest添加用例用TextTestRunner().run运行单个用例或部分用例第三种通过TestLoader()去执行一个路径下的用例用TextTestRunner().run去运行一个路径下的用例我们运行的过程也可以导入html报告模板来生成自动化用例报告导入一个html报告模板定义好报告生成的路径如路径时间后缀.html ,通过open打开报告通过二进制的方式bw写入内容运行报告模板填写报告模板的详情stream运行内容,title自动化用例的标题,description执行用例情况,tester测试人员等填写后run运行运行就会生成一个ui自动化测试报告查看自动化用例报告的结果。这就是我做的自动化。新的报告模板1、dos命令下载pip install unittestreport2、运行代码import unittestimport timefrom selenium import webdriverfrom unittestreport import TestRunner #class Cms_zdh(unittest.TestCase):classmethoddef setUpClass(cls) - None:passclassmethoddef tearDownClass(cls) - None:passdef setUp(self) - None: #执行前的操作self.dxwebdriver.Chrome()self.dx.get(http://49.233.201.254:8080/cms/manage/login.do)self.dx.implicitly_wait(3)self.dx.find_element_by_id(userAccount).send_keys(admin)time.sleep(2)self.dx.find_element_by_id(loginPwd).send_keys(123456)time.sleep(2)self.dx.find_element_by_id(loginBtn).click()def tearDown(self) - None: #执行后的操作time.sleep(10)self.dx.close()def test1_yhzx(self):self.dx.find_element_by_xpath(//*[idmenu-user]/dt/i).click()def test2_xtgl(self):self.dx.find_element_by_xpath(//*[idmenu-system]/dt/i).click()def testA_tc(self):self.dx.find_element_by_xpath(/html/body/header/span[2]/a).click()if __name__ __main__:# unittest.main# tjunittest.TestSuite()# # tj.addTest(Cms_zdh(test2_xtgl))# # unittest.TextTestRunner().run(tj)# ljrC:\Users\Administrator\PycharmProjects\untitled\ui# dunittest.TestLoader().discover(start_dirlj,patternzdh3*.py)# unittest.TextTestRunner().run(d)ljrC:\Users\Administrator\PycharmProjects\untitled\uidunittest.TestLoader().discover(start_dirlj,patternzdh3*.py)bglj rC:\Users\Administrator\PycharmProjects\untitled\uinewtime.strftime(%y-%m-%d %H-%M-%S)bgbglj/str(new)ui.htmlfopen(bg,bw)TestRunner(d,filenamebg,title标题,tester测试员,desccms项目测试生成的报告,templates1).run()

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号