您可以尝试以下几个选项。一些取自这篇博文——
Exclude Selenium WebDriver traffic from Google Analytics.
选项 0:避免测试现场生产网站
理想情况下,自动化 Selenium UI 测试更适合针对某种测试环境进行测试,而不是在现场生产数据库中乱七八糟。由于现场生产现场只需要一些手动探索/烟雾测试。在这种情况下,在设置测试环境时,请使用不同的 Google Analytics 跟踪器,甚至避免使用 Google Analytics。
选项 1:禁用 JavaScript
由于 Google Analytics 跟踪是通过执行 JavaScript 代码的 sn-p 来完成的,因此在浏览器中禁用 JavaScript 就可以了。但这并不实际,因为这肯定会影响网站的功能。
选项2:设置用户代理并排除用户代理
在启动 WebDriver 时设置一个特殊的测试用户代理,然后在您的源代码中,使用 JavaScript 排除该用户代理。
例如,您的 GA 应该是:
if (user agent != your special testing user agent) {
your GA code
}
选项 3:排除 IP/ISP
在您的 GA 的管理设置中设置它
选项 4:退出插件
启动您的 WebDriver 一个 GA 退出插件(仅适用于 ChromeDriver 和 FirefoxDriver)。 Google Analytics Opt out Add ons
选项 5:使用 JavaScript 的自定义变量(cookie)
请参阅Best Ways to Exclude Internal Traffic in Google Analytics 中的“使用 JavaScript 设置 Cookie”部分
选项 6:使用 BrowserMob Proxy 之类的代理
BrowserMob Proxy 允许操纵 HTTP 请求和响应、捕获 HTTP 内容以及将性能数据导出为 HAR 文件。它支持黑名单,可用作阻止发送到 Google Analytics 的数据的一种方式。
require 'browsermob/proxy'
require 'selenium-webdriver'
server = BrowserMob::Proxy::Server.new("./browsermob-proxy-2.1.4/bin/browsermob-proxy", :log => true)
server.start
proxy = server.create_proxy
proxy.blacklist("https?:\/\/www\.google-analytics\.com\/.*", 404)
profile = Selenium::WebDriver::Firefox::Profile.new
profile.proxy = proxy.selenium_proxy
driver = Selenium::WebDriver.for :firefox, :profile => profile
proxy.new_har "browsermob"
driver.get 'http://yizeng.me/'
har = proxy.har
har.entries.first.request.url
har.save_to "./browsermob.har"
proxy.close
driver.quit
选项 7:使用 Selenium JavaScriptexecutor 删除 GA 代码
你的想法,但不确定这是否可能,一旦加载了 GA 代码,它就会被执行,之后必须以某种方式使用 Selenium 删除代码?