【发布时间】:2016-11-25 06:35:42
【问题描述】:
您能否解释一下,为什么 DRIVER 在装饰器 auto_login 中等于 None。但是当我从 setUp 和 auto_login 方法打印它时,来自 setUp 方法的 DRIVER 在输出中首先出现。 以及如何从 setUp 方法全局设置驱动程序。
DRIVER = None
class BaseTest(unittest.TestCase):
def setUp(self):
global DRIVER
DRIVER = webdriver.Firefox()
print("DRIVER setUp: ", DRIVER)
def tearDown():
.....
和装饰器
def auto_login(email, password):
def create_dec(func):
def wrapper(*args, **kwargs):
print("DRIVER IN DEC: ", DRIVER)
login(DRIVER, email, password)
func(*args, **kwargs)
return wrapper
return create_dec
这就是我使用装饰器进行测试的方式
class Test(BaseTest):
EMAIL = "xxx@gmail.com"
PASSWORD = "xxxxx"
@auto_login(email=EMAIL, password=PASSWORD)
def test_1(self):
......
输出:
DRIVER setUp: <selenium.webdriver.firefox.webdriver.WebDriver (session="e1f7fa5fa4137305c4587535b20b849c")>
DRIVER IN DEC: None
【问题讨论】:
标签: python selenium python-unittest