在Selenium中使用javascript停用Google Analytics

Syn*_*sso 4 selenium google-analytics selenium-webdriver

我正在使用硒来测试生产现场.测试活动与分析一起拧紧.

我可以通过Selenium在页面加载后使用JavaScript禁用分析吗?我知道我可以通过Selenium执行JS.问题是,如何禁用GA代码?

Yi *_*eng 6

您可以尝试以下几种选择.其中一些来自此博客文章 - 从Google Analytics中排除Selenium WebDriver流量.

选项0:避免测试实时生产站点

理想情况下,自动化Selenium UI测试更适合测试某种测试环境,而不是在实时生产数据库中乱七八糟.由于现场制作网站只需要一些手动探索/烟雾测试.在这种情况下,在设置测试环境时,请使用其他Google Analytics跟踪器,甚至避免使用Google Analytics.

选项1:禁用JavaScript

由于Google Analytics跟踪是通过执行一段JavaScript代码完成的,因此在浏览器中禁用JavaScript即可.但这不切实际,因为这肯定会影响网站的功能.

选项2:设置用户代理并排除用户代理

在启动WebDriver时设置特殊测试用户代理,然后在源中使用JavaScript排除该用户代理.

例如,您的GA应该是:

if (user agent != your special testing user agent) {
    your GA code
}
Run Code Online (Sandbox Code Playgroud)

选项3:排除IP/ISP

将其设置在GA的管理员设置中

选项4:选择退出插件

启动您的WebDriver GA退出插件(仅适用于ChromeDriver和FirefoxDriver).谷歌分析选择添加

选项5:使用JavaScript自定义变量(cookie)

请参阅" 在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
Run Code Online (Sandbox Code Playgroud)

选项7:使用Selenium JavaScriptexecutor删除GA代码

你的想法,但不确定这是否可能,一旦GA代码被加载,它已被执行,使用Selenium删除代码必须以某种方式在那之后?