我正在开发用于E2 E前端测试的框架,主要使用Selenium的WebDriver,我想将Spring框架添加到其中。关于WebDriver对象有一些问题,让我解释一下:
每当我需要当前的WebDriver示例时,我都会使用此方法:
public class DriverManager {
(...)
//@Bean //For further explanation
public WebDriver getWebDriver() {
return getOrCreateWebDriver();
}
(...)
}
如上所述,如果WebDriver对象是null
(意味着,甚至一次也没有初始化或被释放(调用quit
方法)),它将创建WebDriver对象,或者返回现有示例。此方法用于ALL ACROSS框架,并且始终检索正确的WebDriver示例。此方法以前是static
,现在引入Spring,它被重构为示例。
我几乎可以在任何地方使用@Autowired
DriverManager示例,只需调用getWebDriver
,但我正在寻找更好的解决方案。
理想情况下,我希望实现这样的目标:
@Scope("singleton")
public class SingletonUtilsObject {
@Autowired
WebDriver webDriver;
}
但是WebDriver示例可能会更改,并且在解决自动布线和初始化bean后,SingletonUtilsObject
示例不会拾取它。
我所想的是在调用后以某种方式处置@Autowired WebDriver,并“强制”beanFactory在下一次调用时再次对其进行自动连接--就像在第一次Bean调用时发生的那样(如果它是@Lazy
有没有办法做到这一点?
1条答案
按热度按时间t98cgbkg1#
1.原型作用域-如果您希望在每次调用getInstance时都获得一个新示例。
1.请求范围(如果使用HTTP请求并且每个请求都需要一个示例)。
您可以参考:https://www.baeldung.com/spring-bean-scopes