2017-04-04 61 views
1

我想阻止通過硒的c#控制Google ChromeDriver我可以阻止ChromeDriver連接某些網站嗎?當使用硒

這可能嗎?

我這是怎麼開始的硒和導航

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

比方說,我想,尤其是Chrome的實例不連接http://googleads.g.doubleclick.net:443

這可能嗎?

當這種鉻實例請求連接http://googleads.g.doubleclick.net:443,它應該被自動阻止或可能返回127.0.0.1我不知道

我需要一些解決方案,這將阻止司機應答等待

好後,我看到了答案我想我不能很好地澄清這個問題

我想要的是我導航到一個頁面,這使得很多不必要的請求到其他主機。我想阻止這些主機,那麼頁面加載時間線會好很多

我通過編輯主機試圖等文件,現在它是更好

10次但是,這是全系統的

不知相同可能適用於鍍鉻驅動器

+0

如果Selenium沒有任何預構建函數,我想你唯一的解決方案是創建一個計時器(System.Timers.Timer)來檢查當前URL是否被阻塞,如果是,告訴驅動程序倒退或類似的東西。 –

+0

ty爲答案。我已更新我的問題。 – MonsterMMORPG

+0

不知道這將如何工作,但我正在考慮這個解決方案 - 注入JS並使用JQuery的[全局Ajax事件處理程序](https://api.jquery.com/category/ajax/global-ajax-event-handlers /)來處理請求事件。在需要的主機上使用'.ajaxSend()'應用過濾器。 – ekostadinov

回答

1

WebDriver不允許此級別的控制(故意使用),因此簡短答案爲否,您無法通過它進行此操作。

雖然有一個解決方案 - 只是代理所有的流量,並將違規的URI列入黑名單;或將您正在使用的人列入白名單。以任何方式,使代理及時返回合理的響應(一個像素文件,或404)用於任何不需要的URI。 示例代碼(我的C#是生鏽:):

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

(用於Firefox這是一個有點不同,它被設置爲功能有)

有很多的代理選項,從squid傳說,tinyproxy我以前用於類似的目的,whatever將適合您的環境和需求。

+0

似乎很麻煩。我希望瀏覽器支持它 – MonsterMMORPG

相關問題