3

我有一堆 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也不起作用,因为我没有尝试关闭类的特定实例(我不控制类),我希望某个方法的客户端在完成之前执行特定的方法或代码。

4

1 回答 1

0

从听起来像是定义的方式来看,当前的实例WebDriverManager应该跟踪当前测试使用的配置文件。如果还没有,您将不得不编写此代码。在测试清理期间,调用类似WebDriverManager.SetProfileAvailable()的方法将使用的配置文件设置回 AVAILABLE。

于 2018-01-17T14:45:09.433 回答