gpt4 book ai didi

java - Selenium 节点/集线器身份验证

转载 作者:行者123 更新时间:2023-12-02 13:10:10 27 4
gpt4 key购买 nike

我试图通过实现自定义代理来阻止 Selenium 集线器注册节点。我有一些适用于自定义代理的代码。但是,客户端可以通过不在其配置中指定自定义代理来解决此问题。有没有办法强制节点使用自定义代理而不使用 DefaultRemoteProxy。

或者我可以在 Selenium 项目中实现一些东西来使用 selenium hub 对节点进行身份验证吗?

最佳答案

没有优雅的方法可以做到这一点。这是一个肮脏的技巧,您可以使用它来完成此任务。

  • 创建一个新的标记界面(我们将其命名为 Registrable )
  • 创建一个新类,其内容与 org.openqa.grid.selenium.proxy.DefaultRemoteProxy 的内容重复(我喜欢将这种方法称为 CLASSPATH 覆盖,但我确信有一个更优雅的名称),这样这个新类也被称为 DefaultRemoteProxy它位于同一个包 org.openqa.grid.selenium.proxy 中但在您的测试项目中。
  • 现在在构造函数中添加编辑检查,如下所示。
  • 现在从此项目中创建一个 uber jar,以便可以使用它来分离 Hub。

方法如下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界面。

这对你有用吗?

关于java - Selenium 节点/集线器身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43986508/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com