我有一堆 WebDriver 配置文件(我们称它们为 x、y 和 z),我需要选择一个随机配置文件来执行某些操作。我们将动作称为 A、B 和 C。
在我的课堂WebDriverManager
上,我定义了三种方法doA()
:doB()
和doC()
。每种方法都将选择一个随机配置文件,该配置文件a)当前未使用b)有资格执行给定操作。
如果 aclient
调用doA(), doB() or doC()
,他们将获得有WebDriver
资格执行操作 A、B 或 C的配置文件。doA(), doB() or doC()
还将所述配置文件的状态设置为 UNAVAILABLE(通过 props 文件),以便配置文件不会被返回用于不同的操作(或如果从不同的线程调用相同的操作),直到它再次可用。
我的问题是,只有当客户完成将所述配置文件用于其预期目的时,该配置文件才会变得可用。
由于方法doA()
等将通过许多客户端访问,我如何强制ofclient
或在profile 返回之前将其状态设置为 AVAILABLE ?如果将来某个时候我忘记将给定配置文件的状态更改为可用(在客户端),它将永远保持不可用,这将导致很多问题。doA()
doB()
doC()
WebDriver
那么如何保证调用任何方法doA()
,doB()
并doC()
在返回之前将配置文件状态设置为 AVAILABLE 呢?
附言
这是我在 SO 上找到的最接近的问题,但我认为这并不能解决我的问题,因为我无法控制实际的WebDriver
类,我只是希望每个上述方法的客户端在返回之前执行某个操作。
AutoClosable
也不起作用,因为我没有尝试关闭类的特定实例(我不控制类),我希望某个方法的客户端在完成之前执行特定的方法或代码。