2017-04-04 2 views
1

Ich möchte C# kontrollierten Google ChromeDriver über SelenKann ich ChromeDriver blockieren, um bestimmte Websites zu verbinden? Bei Verwendung von Selen

blockieren Ist das möglich? Diese

ist, wie ich das Selen starten und navigieren

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

Können sagen, ich will, dass bestimmte Chrome-Instanz nicht http://googleads.g.doubleclick.net:443

Ist das möglich verbinde?

Wenn die Chrome-Instanz Anfragen http://googleads.g.doubleclick.net:443 zu verbinden, sollte es automatisch blockiert werden, oder vielleicht zurückkehren 127.0.0.1 Ich weiß nicht,

ich eine Lösung benötigen, die Fahrer verhindern Antwort wartet

Ok, nachdem ich die Antwort sah Ich denke, ich konnte die Frage nicht gut genug klären

Die Sache, die ich will, ist, ich navigiere zu einer Seite, die eine Menge unnötiger Anfragen an andere Hosts macht. Ich mag die Hosts blockieren, so dass Seitenlade Timings wäre viel besser

ich über die Bearbeitung Hosts versucht, in etc Datei und jetzt ist es 10-mal besser

Aber das ist systemweite

Ich frage mich, gleich kann für chromedriver oder nicht gelten

+0

Wenn Selenium keine Pre-Build-Funktionen hat, würde ich Ihre einzige Lösung wäre, einen Timer (System.Timers.Timer) zu erstellen, der überprüft, ob die aktuelle URL blockiert werden sollte, und wenn dies der Fall ist, informieren Sie den Treiber rückwärts gehen oder so etwas. –

+0

ty für die Antwort. Ich habe meine Frage aktualisiert. – MonsterMMORPG

+0

Nicht sicher, wie dies funktioniert, aber ich denke über diese Lösung nach - injizieren Sie JS und verwenden Sie die [Global Ajax Event Handlers] von JQuery (https://api.jquery.com/category/ajax/global-ajax-event-handlers) /) um Anfrageereignisse zu bearbeiten. Wenden Sie den Filter mit '.ajaxSend()' auf den Hosts an, die Sie benötigen. – ekostadinov

Antwort

1

Der WebDriver erlaubt diese Ebene der Kontrolle (absichtlich) nicht, so dass die kurze Antwort nein ist, können Sie das nicht durch.

Es gibt jedoch eine Lösung - Proxy nur den gesamten Verkehr, und schwarze Liste der störenden URIs; oder whitelist die, mit der Sie arbeiten. Lassen Sie den Proxy in irgendeiner Weise rechtzeitig eine angemessene Antwort (eine Pixeldatei oder 404) für nicht benötigte URIs zurückgeben. Beispielcode (meine C# ist rostig :):

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

(für Firefox ist es ein bisschen anders, als Fähigkeiten dort eingestellt wird)

Es gibt eine Menge von Optionen für den Proxy, von den squid Legende, die tinyproxy Ich habe in der Vergangenheit für ähnliche Zwecke verwendet, um whatever wird Ihre Umgebung und Bedürfnisse anpassen.

+0

scheint wie viel Ärger. Ich wünschte, der Browser würde es unterstützen – MonsterMMORPG

Verwandte Themen