selenium 每次调用时再次弹出autowire Bean

zd287kbt  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(122)

我正在开发用于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
有没有办法做到这一点?

t98cgbkg

t98cgbkg1#

1.原型作用域-如果您希望在每次调用getInstance时都获得一个新示例。
1.请求范围(如果使用HTTP请求并且每个请求都需要一个示例)。
您可以参考:https://www.baeldung.com/spring-bean-scopes

相关问题