注意是parameterized!!不是parameterize!!
出现“AttributeError: module ‘parameterize’ has no attribute 'parameterize’”这种错误的都是这个原因。
我这里以参数化注册用户名和密码为例:
import unittest
from time import sleep
from selenium import webdriver
import parameterized
//data里的数据,对应的就是用户名和密码,这里准备注册三个
data = [["zhangsan","1"],["lisi","2"],["wangwu","3"]]
driver=None
class unitTestMock(unittest.TestCase):
@classmethod
def setUpClass(cls):
global driver
driver = webdriver.Chrome()
driver.maximize_window()
print("运行setUpClass...")
def setUp(self):
driver.get("http://localhost:1080/WebTours/")
sleep(3)
print("运行setUp,重新加载地址...")
@parameterized.parameterized.expand(data)
def testA_Register(self,username,password):
driver.switch_to.default_content()
driver.switch_to.frame("body")
driver.switch_to.frame("info")
driver.find_element_by_partial_link_text("sign up").click()
sleep(3)
driver.switch_to.default_content()
driver.switch_to.frame("body")
driver.switch_to.frame("info")
driver.find_element_by_name("username").clear()
driver.find_element_by_name("password").clear()
driver.find_element_by_name("username").send_keys(username)
sleep(1)
driver.find_element_by_name("password").send_keys(password)
sleep(1)
driver.find_element_by_name("passwordConfirm").send_keys(password)
sleep(1)
# 点击注册
driver.find_element_by_name("register").click()
sleep(3)
def tearDown(self):
print("运行tearDown...")
@classmethod
def tearDownClass(cls):
driver.quit()
print("运行tearDownClass...")
if __name__=="__main__":
unittest.main(verbosity=2)
如果导入parameterized时报错,直接点击报错位置会有相关提示信息,点击提示信息就能直接安装,不需要使用“pip install XXX”这类命令。