Java:强制方法的客户端在返回之前执行代码

Java:强制方法的客户端在返回之前执行代码,java,selenium-webdriver,webdriver,try-with-resources,autocloseable,Java,Selenium Webdriver,Webdriver,Try With Resources,Autocloseable,我有一堆WebDriver配置文件(我们称它们为x、y和z),我需要选择一个随机配置文件来执行某些操作。让我们把动作称为A、B和C 在我的类WebDriverManager中,我定义了三种方法:doA()、doB()和doC()。每个方法将选择一个a)当前未使用的随机配置文件和b)有资格执行给定操作的随机配置文件 如果客户端调用doA()、doB()或doC(),他们将获得一个WebDriver配置文件,该配置文件有资格执行操作a、B或C。doA()、doB()或doC()还将所述配置文件的状态

我有一堆WebDriver配置文件(我们称它们为x、y和z),我需要选择一个随机配置文件来执行某些操作。让我们把动作称为A、B和C

在我的类
WebDriverManager
中,我定义了三种方法:
doA()
doB()
doC()
。每个方法将选择一个a)当前未使用的随机配置文件和b)有资格执行给定操作的随机配置文件

如果
客户端
调用
doA()、doB()或doC()
,他们将获得一个
WebDriver
配置文件,该配置文件有资格执行操作a、B或C。
doA()、doB()或doC()
还将所述配置文件的状态设置为不可用(通过props文件),以便该配置文件不会因其他操作而返回(或从不同线程调用相同的操作),直到它再次可用

我的问题是,只有当客户完成为其预期目的使用所述配置文件时,配置文件才可用

由于方法
doA()
等将通过许多客户端访问,我如何强制
doA()
doB()
doC()的
client
在返回之前将
WebDriver
配置文件的状态设置为可用?如果将来某个时候我忘记将给定配置文件的状态更改为可用(在客户端),它将永远不可用,这将导致许多问题

那么,我如何保证调用
doA()
doB()
doC()
的任何方法在返回之前都会将概要文件状态设置为可用

p.S.

是我在SO上发现的最接近的问题,但我相信这并不能解决我的问题,因为我无法控制实际的
WebDriver
类,我只是希望上述每个方法的客户端在返回之前执行特定的操作


AutoClosable
也不起作用,因为我没有尝试关闭类的特定实例(我不控制该类),我希望某个方法的客户端在它完成之前执行特定的方法或代码。

从您定义它的方式来看,
WebDriverManager
的当前实例应该跟踪当前测试使用的配置文件。如果还没有,您将不得不编写此代码。在测试清理期间,call类似于
WebDriverManager.SetProfileAvailable()的内容
将已使用的配置文件设置回可用状态。

可能会传入一个
消费者
,并要求客户机在lambda/方法引用中完成他们需要的所有操作?WebDriverManager如何跟踪/知道客户机何时完成?WebDriverManager所知道的是调用它的时间,而不是客户机何时返回。您的测试将知道何时完成。我不知道您使用的是什么框架,但如果您使用TestNG,它具有
@postertest
的概念。您可以创建一个要在每次测试后运行的方法,用属性
@postertest
标记它,并在该方法内调用
WebDriverManager.SetProfileAvailable()
。这里有一个指向的链接,让您更好地了解其工作原理。有其他注释可用于不同的情况。还有其他框架,例如JUnit,您可以使用。