前言:
1、python+unittest+selenium打开一个浏览器执行多条用例需要用到setUpClass(cls)和tearDownClass(cls)这两个方法
2、本文包含关闭浏览器单个窗口以及退出浏览器的操作方法,已在代码中注释
一、部分执行结果
1、用例1部分截图:
2、用例2部分截图:
3、pycharm执行结果:
二、示例代码
import time
from selenium import webdriver
import unittest
class baogao(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.baidu_url = "https://www.baidu.com"
cls.csdn_url = "https://www.csdn.net/"
def setUp(self):
self.driver.maximize_window()#浏览器最大窗口化
#执行用例1
def test_baidu(self):
driver = self.driver
driver.get(self.baidu_url)
#若单独使用下面注释掉的代码,即直接写入浏览器地址,则不用setUpClass里的cls.baidu_url = "https://www.baidu.com"
# driver.get("https://www.baidu.com")
driver.find_element_by_xpath("//input[@name='wd']").send_keys("HTMLTestRunner")
driver.find_element_by_xpath("//input[@id='su']").click()
time.sleep(3)
#执行用例2
def test_csdn(self):
driver = self.driver
driver.get(self.csdn_url)
# 若单独使用下面注释掉的代码,即直接写入浏览器地址,则不用setUpClass里的cls.csdn_url = "https://www.csdn.net/"
# driver.get("https://www.csdn.net/")
time.sleep(5)
driver.find_element_by_id("toolbar-search-input").send_keys("Eayonz")
time.sleep(5)
driver.find_element_by_id("toolbar-search-button").click()
time.sleep(2)
#driver.find_element_by_xpath("/html/body/div[5]/div[1]/div[2]/div[3]/dl[1]/dt/div/a").click()
#time.sleep(2)
#结束退出
@classmethod
def tearDownClass(cls):
cls.driver.quit()#退出浏览器
#cls.driver.close()#关闭当前浏览器中的一个标签窗口
注意事项:
setUpClass以及tearDownClass函数前必须要有@classmethod修饰符
解释:classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
Python菜鸟教程:https://www.runoob.com/python/python-func-classmethod.html