使用Selenium执行所有用例的时候浏览器只打开一次,所有用例执行完以后关闭浏览器
from selenium import webdriver
import unittest
import time
# 定义driver的局部作用域,不在setUp内部,这种方式保证了浏览器只打开一次,所有用例执行完以后执行tearDownModule方法关闭浏览器
class Setting:
driver = None
url = None
def setUpModule():
Setting.driver = webdriver.Chrome()
Setting.driver.maximize_window()
Setting.driver.implicitly_wait(10)
Setting.url = "https://XXXXXXXXX.yyyyyyy.cn/"
def tearDownModule():
Setting.driver.quit()
class MyTest(unittest.TestCase):
def login(self):
Setting.driver.get(Setting.url)
Setting.driver.find_element_by_id('telphone').send_keys('15936558246')
Setting.driver.find_element_by_id('password').send_keys('123456')
Setting.driver.find_element_by_id('submitBtn').click()
time.sleep(16)
def test01_login(self):
'''登录工作台'''
self.login()
title = Setting.driver.title
print(title)
self.assertEqual(title, "名字来一个")
time.sleep(10)
def test02_developer(self):
'''进入开发者模式'''
Setting.driver.find_element_by_xpath('//*[@id="root"]/div/header/div/ul/li[4]').click()
time.sleep(5)
print('第1个', Setting.driver.current_url)
self.assertIn(Setting.driver.current_url,
'https://XXXXXXXXX.yyyyyyy.cn/?tenantId=e6f54b6f-7547-46a5-b900-986a77986503&resourceGroupId=286c67f1-28c5-4000-ba31-97fbda2eb6ae&mode=developer')
def test03_user(self):
'''进入用户模式'''
Setting.driver.find_element_by_xpath('//*[@id="root"]/div/header/div/ul/li[4]').click()
time.sleep(1)
Setting.driver.find_element_by_xpath('//*[@id="root"]/div/header/div/ul/li[2]').click()
time.sleep(5)
print('第2个', Setting.driver.current_url)
self.assertIn(Setting.driver.current_url,
'https://XXXXXXXXX.yyyyyyy.cn/?tenantId=e6f54b6f-7547-46a5-b900-986a77986503&resourceGroupId=286c67f1-28c5-4000-ba31-97fbda2eb6ae&mode=user')
if __name__ == "__main__":
unittest.main()
标签:
Selenium自动化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2019-12-01 django基础之day05,orm字段参数,自定义需要的字段,orm中的事务操作
2019-12-01 django基础之day05,F与Q查询,Q查询的高级用法
2019-12-01 django基础之day04,聚合查询和分组查询