我发现了几种方法:
Google Analytics Opt Out Browser Add On
编辑主机文件以将Google Analytics(分析)重定向到localhost(我对这种解决方案不太满意,因为过去它破坏了我们的某些集成文件)
其他浏览器特定的扩展程序,阻止您使用Google Chrome浏览器的GA扩展程序和适用于Firefox的Google Disconnect。
#1 楼
Browsermob-proxy可用于将GA主机列入黑名单,因此甚至不会加载代码。https://github.com/lightbody/browsermob-proxy
它与Selenium集成良好。
这是一个通用的演讲,描述使用BMP将可拖延自动化的任务列入黑名单(特别提到了Facebook和Twitter小部件,但是我敢肯定GA也可以被列入黑名单):
http://element34.ca/blog/proxy-executor
这是一个很好的指南,可以轻松地在C#中结合使用browsermob-proxy和Selenium。以及用于将除
ga.js
文件之外的每个请求都列入黑名单的正则表达式(通过这种方式,您可以测试GA是否正常运行,并且假定该文件存在,页面也不会中断)。@"http://www\.google-analytics\.com/(?!ga\.js).*"
#2 楼
它的文档记录不是很好,但是您也可以通过将host-resolver-rules选项传递给chrome并将域映射到localhost或无效IP来实现请求阻止。这样的事情应该适合您: ChromeOptions options = new ChromeOptions()
options.addArguments("--host-resolver-rules=MAP www.google-analytics.com 127.0.0.1")
def driverInstance = new ChromeDriver(options)
评论
非常感谢你做的这些!需要注意的是,如果用逗号分隔,则可以指定多个主机映射,
–杰索
18年11月20日在16:54
完美,这让我开心!适用于无头的Chrome。可以使用通配符。
–欧文·梅耶(Erwin Mayer)
19年4月10日在18:38
#3 楼
您应该使用Google Analytics(分析)功能排除您的IP地址。此处的联机帮助中对此进行了介绍。评论
不幸的是,这不是一个选择。我们无权访问客户的GA,也无法可靠地(或在功能上)与他们进行交流以对其进行过滤。另外,它们将用于在许多本地IP地址和云服务上运行的自动化测试中。
–craastad
2013年9月24日15:13
#4 楼
我发现了一种非常简单的方法,可以使用Google Analytics(分析)选择退出附加组件针对Chrome和Firefox做到这一点,这些附加组件基本上适用于所有浏览器。提到这个有关使用硒进行浏览器插件测试的问题,我就可以使用C#的以下代码打开GA /免费的硒会话:var options = new ChromeOptions();
options.Proxy = proxy;
options.AddExtension(Path.GetFullPath("chrome-ga-optout-extension.crx"));
var driver = new ChromeDriver(options);
和
var profile = new FirefoxProfile();
profile.AddExtension(Path.GetFullPath("firefox-ga-optou-addon.xpi"));
profile.SetProxyPreferences(proxy);
var driver = new FirefoxDriver(profile);
。可以使用本文的帮助下载Google Chrome扩展名.crx文件。
不幸的是,对于IE这种方法,我们受Selenium的支持,无法实现对IE驱动程序的附加支持。毫无希望的情况。...如果有人能想到IE的解决方案,那就太好了。
评论
还没有尝试过,但是我敢打赌,您可以在测试过程中使用Fiddler API阻止对Google Analytics Server的任何访问。甚至只是将条目添加到您的主机文件中,即可将发送到Google Analytics(分析)服务器的所有流量发送到另一个IP地址。
–山姆·伍兹(Sam Woods)
2013年9月24日18:21
我知道主机文件技巧的条目(如上所述)。这似乎不是一个理想的解决方案(但是我想我没有任何理由)。
–craastad
2013年9月25日在7:05
Fiddler API听起来不错。我确实研究了Fiddler API,以了解如何实际测试未发送的分析调用,但是与仅查看Fiddler的输出相比,值得付出atm的努力。
–craastad
2013年9月25日在7:57
#5 楼
您可以简单地将退出cookie添加到浏览器中。这个答案可能会有帮助。评论
这个答案最好作为评论,您也有足够的意见要评论!
–IAmMilinPatel
16年7月15日在1:12
评论
是。代理绝对是解决问题的方法。尤其是当我需要与其他域一起执行此操作时。当我开始工作时,我将编辑并粘贴使其在C#中工作的代码。
–craastad
2013年9月25日下午14:57