我可以阻止ChromeDriver连接某些网站吗?使用Selenium时

时间:2017-04-04 09:51:12

标签: c# selenium selenium-chromedriver

我想通过Selenium阻止c#控制的Google ChromeDriver

这可能吗?

这就是我启动selenium并导航

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

让我们说我希望特定的Chrome实例不要连接http://googleads.g.doubleclick.net:443

这可能吗?

当该Chrome实例请求连接http://googleads.g.doubleclick.net:443时,它应该被自动阻止或者可能会返回127.0.0.1我不知道

我需要一些能阻止司机等待响应的解决方案

好的,在我看到答案之后,我认为我不能很好地澄清这个问题

我想要的是,我正在导航到一个页面,这会向其他主机发出大量不必要的请求。我想阻止这些主机,因此页面加载时间会更好

我尝试过编辑主机文件等等,现在它好了10倍

但这是全系统的

我想知道同样适用于chromedriver或不适用

1 个答案:

答案 0 :(得分: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图例,我过去用于类似目的的tinyproxywhatever将适合您的环境和需要。