カスタムプロキシを実装してノードを登録するセレンハブを停止しようとしています。私はカスタムプロキシのために働くいくつかのコードを持っています。ただし、クライアントは、構成内にカスタムプロキシを指定しないことで、この問題を回避できます。ノードがカスタムプロキシを使用し、DefaultRemoteProxyを使用しないようにする方法がありますか?セレニウムノード/ハブ認証
または、セレンプロジェクトで、セレンハブを使ってノードを認証するための実装ができますか?
カスタムプロキシを実装してノードを登録するセレンハブを停止しようとしています。私はカスタムプロキシのために働くいくつかのコードを持っています。ただし、クライアントは、構成内にカスタムプロキシを指定しないことで、この問題を回避できます。ノードがカスタムプロキシを使用し、DefaultRemoteProxyを使用しないようにする方法がありますか?セレニウムノード/ハブ認証
または、セレンプロジェクトで、セレンハブを使ってノードを認証するための実装ができますか?
これを行うためのエレガントな方法はありません。 これは、あなたがこれを行うことができる汚れたハックです。
org.openqa.grid.selenium.proxy.DefaultRemoteProxy
の内容を複製(私はオーバーライドCLASSPATHとして、このアプローチを呼びたいが、はるかにエレガントあります確信して新しいクラスを作成します(Registrable
としてそれを呼び出すことができます)この新しいクラスも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
を使用してノードを登録しようとする人は、がRegistrable
インターフェイスを実装していないため、常に失敗します。
これはあなたのために働くでしょうか?
ありがとうございます。これは私のニーズに対応します。しかし、私は 'instanceof Registroble'を' instanceof CustomProxy'に変更して、CustomProxyと 'Registrable'インターフェースも実装した別のプロキシを使わなくてはなりません。 –