2017-04-04 4 views
1

セレンを介して制御されたGoogle ChromeDriverをブロックしたいChromeDriverが特定のウェブサイトに接続するのをブロックすることはできますか? Seleniumを使用しているとき

これは可能ですか?

これは私がセレンを開始し、

var Driver = new ChromeDriver(); 
Driver.Navigate().GoToUrl(URL) 

をナビゲートする方法であるが、特定のクロームインスタンスがやっていることを私はしたいとしましょうhttp://googleads.g.doubleclick.net:443

が可能です。この接続できませんか?

そのクロムインスタンス要求がhttp://googleads.g.doubleclick.net:443を接続するための、私が私が私が答えを見た後に応答

[OK]を待っているドライバを防ぐことができますいくつかのソリューションを必要と

を知らない、自動的にブロックされたまたは多分127.0.0.1を返すべきです私は十分に質問を明確にすることができなかったと思う

私が欲しいのは、私は他のホストに不必要な要求をたくさん作るページに移動しています。私は、これらのホストをブロックするので、ページの読み込みタイミングは、私が編集ホストを経由して試してみましたetcにあるファイル

ずっと良いだろうと、今では10倍

優れている。しかし、これは、私は同じだろ

広いシステムであり、クロムドライバーにも適用される可能性があります。

+0

Seleniumにプリビルド機能がない場合は、タイマー(System.Timers.Timer)を作成して現在のURLをブロックする必要があるかどうかを確認し、そうであればドライバに通知する後ろに行くことなどがあります。答えは –

+0

です。私は私の質問を更新しました。 – MonsterMMORPG

+0

これはどのように動作するのか分かりませんが、私はこのソリューションについて考えています.JSを注入し、JQueryの[Global Ajax Event Handlers](https://api.jquery.com/category/ajax/global-ajax-event-handlers /)を使用して要求イベントを処理します。あなたが必要とするホスト上で '.ajaxSend()'でフィルターを適用してください。 – ekostadinov

答えて

1

WebDriverでは、このレベルの制御は(目的に応じて)許可されていないため、短い答えは「いいえ」です。

解決策があります。すべてのトラフィックをプロキシするだけで、問題のURIをブラックリストに登録します。あなたが作業しているものをホワイトリストに追加することができます。どのようにしても、不要なURIについては、プロキシが時間的に合理的な応答(ピクセルファイルまたは404)を返すようにします。 サンプルコードは、(私のC#が錆び:)です:

ChromeOptions options = new ChromeOptions(); 
options.AddArguments("--proxy-server=XXX.XXX.XXX.XXX"); 
var Driver = new ChromeDriver(options); 

(Firefoxのためにそれはそれは squidから、プロキシの多くのオプションがあります

が機能)として設定されています、少し違うのです伝説、tinyproxy私はこれまで似たような目的のために使ってきました。whateverはあなたの環境とニーズに合っています。

+0

は面倒なようです。私はブラウザがそれをサポートしてほしかった – MonsterMMORPG

関連する問題