4

我的 Selenium 测试因测试不需要的第三方脚本而变慢。

我怎样才能阻止他们?最好我想阻止对除localhost之外的任何地方的请求。

4

1 回答 1

4

在线其他地方提供的解决方案是:

  • 通过编辑您的主机文件来阻止不需要的域(例如,*.facebook.com)。
  • 通过可以配置为过滤请求的BrowserMob路由所有测试。

这两种选择对我来说似乎都是多余的。编辑主机文件会影响您的整个系统,并且使用 BrowserMob 会引入新问题

这是另一种方式:使用 PAC 文件将浏览器配置为直接连接到 localhost,并尝试通过不可用的代理连接到其他所有内容。

硒代码(Java):

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
Proxy proxy = new Proxy();
proxy.setProxyType(Proxy.ProxyType.PAC);
proxy.setProxyAutoconfigUrl("http://localhost:8080/my-pac-file.pac");
capabilities.setCapability("proxy", proxy);
ChromeDriver driver = new ChromeDriver(INSTANCE, capabilities);

PAC 文件:

function FindProxyForURL(url, host) {
    if (host.toLowerCase() === "localhost"){
      return "DIRECT"; // whitelisted
    }
  return "PROXY 127.0.0.1:9876"; // blocked (bad proxy)
}
于 2016-10-19T05:41:41.093 回答