【发布时间】:2014-07-22 14:47:45
【问题描述】:
我想在套件开始时建立一个会话。对于多个测试用例,该会话应停留更长时间。该会话应在最后结束。 该会话应该在 Selenium Web 驱动程序中使用 Unittest 框架在 python 语言中实现。 请任何人提出任何方法或如何实现它。
【问题讨论】:
-
你能展示你的代码吗?
标签: python session selenium webdriver python-unittest
我想在套件开始时建立一个会话。对于多个测试用例,该会话应停留更长时间。该会话应在最后结束。 该会话应该在 Selenium Web 驱动程序中使用 Unittest 框架在 python 语言中实现。 请任何人提出任何方法或如何实现它。
【问题讨论】:
标签: python session selenium webdriver python-unittest
实现这一点的最简单方法是不使用 Setup() 和 TearDown() 方法,或者更具体地说,不在该开始或每个测试用例创建 WebDriver 对象的新实例,也不使用 Quit () 方法在每个测试用例的末尾。
在您的第一个测试用例中,创建一个 WebDriver 对象的新实例,并将该对象用于您的所有测试用例。在最后一个测试用例结束时,使用 Quit() 方法关闭浏览器。
【讨论】:
您应该阅读unittest 文档here
我假设你有 discovered your suite(s) 并且正在循环遍历每个并运行每个测试的所有测试。
所以你在这一点上:
loader = unittest.TestLoader()
suite = loader.loadTestsFromModule('/path/to/tests')
for test in suite:
test.run()
在您使用test.run() 开始运行测试之前,请开始您的 webdriver 会话。运行套件中的所有测试后,退出 webdriver 会话。
loader = unittest.TestLoader()
suite = loader.loadTestsFromModule('/path/to/tests')
driver = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_capabilities)
for test in suite:
test.run()
driver.quit()
【讨论】: