我有一堆WebDriver配置文件(让我们称之为x,y和z),我需要选择一个随机配置文件来执行某些操作。我们称之为行动A,B和C.
在我的课程WebDriverManager
中,我定义了三种方法:doA()
,doB()
和doC()
。每种方法都会选择当前未使用 a)的随机配置文件,以及有资格执行指定操作的 b)。
如果client
拨打doA(), doB() or doC()
,他们将获得WebDriver
个人资格,可以执行操作A,B或C. doA(), doB() or doC()
也会设置所述状态配置文件到UNAVAILABLE(通过props文件),以便不再为不同的操作返回配置文件(或者从不同的线程调用相同的操作),直到它再次可用。
我的问题是,只有当客户端完成将所述配置文件用于其预期目的时,该配置文件才可用。
由于方法doA()
等将通过许多客户访问,我如何强制client
doA()
,doB()
或doC()
来设置WebDriver
个人资料在返回之前的状态为AVAILABLE?如果将来某个时候我忘记将给定配置文件的状态更改为AVAILABLE(在客户端中),它将永远保持不可用,这将导致很多问题。
那么我怎样才能保证调用doA()
,doB()
和doC()
的方法在返回之前将配置文件状态设置为AVAILABLE?
P.S。
This是我在SO上发现的最接近的问题,但我相信这并不能解决我的问题,因为我无法控制实际的WebDriver
类,我只想让每个所述方法的客户端在他们返回之前执行某项行动。
AutoClosable
也无法工作,因为我没有尝试关闭某个特定的类实例(我不控制该类),我希望某个方法的客户端执行特定的方法或代码在它结束之前。
答案 0 :(得分:0)
从听起来如此定义的方式来看,WebDriverManager
的当前实例应该跟踪当前测试使用的配置文件。如果还没有,则必须编写此代码。在测试清理期间,调用WebDriverManager.SetProfileAvailable()
之类的东西,将使用过的配置文件设置回AVAILABLE。