我在Java中使用Selenium + TestNG进行Web自动化。目前我已经设置了自动化,以便我有一个静态Web驱动程序,每次调用webdriver都返回相同的浏览器实例。
虽然这对我来说更容易开发不同的模块(不需要传递对象),但现在我在尝试并行运行TC时遇到了问题。
我想知道是否有任何方法可以为每个测试用例创建一个webdriver并在同一个测试用例中使用相同的webdriver而不将该对象实际传递给各个模块?
Ex:我有测试用例TC1,测试用例TC2
我有模块1,2,3,它们都由TC1和TC2调用。我需要创建两个webdriver对象W1和W2,这样TC1中的所有方法都使用W1,而TC2中的所有方法都使用W2,而我没有明确地将W1和W2传递给所有模块。
谢谢
答案 0 :(得分:0)
一种方法是将webdriver实例创建为ThreadLocal对象。通过这种方式,您的实例将在您的线程中是全局的,并且仅在由于并行运行而触发的线程的本地类型。
答案 1 :(得分:0)