0
我试图通过实现自定义代理来阻止注册节点的硒集线器。我有一些适用于自定义代理的代码。但是,客户端可以通过在配置中未指定自定义代理来解决此问题。有没有一种方法可以强制节点使用自定义代理,而不是使用DefaultRemoteProxy。硒节点/集线器身份验证
或者有什么我可以在硒项目中实现用硒中心验证节点?
我试图通过实现自定义代理来阻止注册节点的硒集线器。我有一些适用于自定义代理的代码。但是,客户端可以通过在配置中未指定自定义代理来解决此问题。有没有一种方法可以强制节点使用自定义代理,而不是使用DefaultRemoteProxy。硒节点/集线器身份验证
或者有什么我可以在硒项目中实现用硒中心验证节点?
有没有这样做的优雅方式。 这是一个肮脏的黑客,你可以完成这件事。
Registrable
)org.openqa.grid.selenium.proxy.DefaultRemoteProxy
的内容(我喜欢称这种方法为CLASSPATH压倒一切,但我肯定有一个更优雅名称),这样这个新类别也被称为DefaultRemoteProxy
,它驻留在相同的包org.openqa.grid.selenium.proxy
中,但在您的测试项目中。下面是如何Registrable
会是什么样子
public interface Registrable {}
这里是如何的DefaultRemoteProxy
修改后的构造看起来像:
public DefaultRemoteProxy(RegistrationRequest request, Registry registry) {
super(request, registry);
if (!(this instanceof Registrable)) {
throw new UnsupportedOperationException("Cannot proceed further");
}
pollingInterval = config.nodePolling != null ? config.nodePolling : DEFAULT_POLLING_INTERVAL;
unregisterDelay = config.unregisterIfStillDownAfter != null ? config.unregisterIfStillDownAfter : DEFAULT_UNREGISTER_DELAY;
downPollingLimit = config.downPollingLimit != null ? config.downPollingLimit : DEFAULT_DOWN_POLLING_LIMIT;
}
现在你可以调整你的自定义代理服务器,使得它实现Registrable
接口。因此,任何尝试使用DefaultRemoteProxy
注册节点的人都会经常失败,因为DefaultRemoteProxy
未实现Registrable
接口。
这会适合你吗?
感谢您的解决方法。这将符合我的需求。然而,我确实将'instanceofRegistrable'更改为''instanceof CustomProxy'',以便您必须使用CustomProxy而不是另一个也实现'Registrable'接口的代理。 –