2016-08-16 30 views
0

我正在使用Fitnesse进行一系列测试。由于Fitnesse只允许我一次返回一个值,所以我有一系列断言测试,例如,检查页面上是否存在特定的元素。 fitnesse中的每个测试依次运行,这意味着我的驱动程序实例在每次测试后都会被破坏。在多个Python脚本中保留硒驱动程序

虽然功能 - 这种方法变得不够充分,因为这种简单的检查大部分时间都是打开和关闭浏览器。

我试图腌制司机 - 但没有太多成功这样做。我得到:

TypeError: can't pickle file objects 

我也尝试循环运行的一个单独的Python脚本,并从那里访问的驱动程序,但任何脚本,那么包括这也陷入死循环。

+0

我可能是完全错误的,因为一年前我只有1周的时间与Fitnesse一起玩Java设备,但我记得有像SuiteSetUp和SuiteTearDown这样的特殊页面。这不适合你的情况。 – Grasshopper

回答

0

我的建议是更好地组织测试,并适应每个测试用例都有自己的实例的做法。如果你有非常小的快速情况下,我会建议嵌套它们。

否则我建议阅读关于Singleton模式,它允许我们有一个webdriver实例。你可以在这里找到一些关于实现的例子,只需要搜索selenium singleton。祝你好运!

0

它应该在TestNG中有类似@BeforeSuite的注解。 如果有,您可以利用它来实例化将由所有测试使用的驱动程序创建。

我们已经成功地实现了它使用具有驱动变量,我们设置在@BeforeSuite方法此驱动程序BaseTestClass,然后它是由所有测试共享。 虽然这种方法对它有一些挑战,就像你不能并行运行测试一样,因为驱动程序很常见。