我正在使用selenium测试一个生产站点。测试活度与分析方法紧密相连。
页面加载后,我可以通过Selenium禁用使用JavaScript的分析吗?我知道我可以通过Selenium执行JS。问题是,如何禁用GA代码?
发布于 2013-12-24 11:27:45
下面是几个你可以尝试的选择。一些是从这个博客帖子-- 从中排除Selenium WebDriver流量上拿来的。
选项0:避免测试实时生产站点
理想情况下,自动化Selenium测试更倾向于针对某种测试环境进行测试,而不是在实际生产数据库中乱糟糟地进行测试。作为现场生产现场,只需要一些手工的探索性/烟雾测试。在这种情况下,在设置测试环境时,使用不同的Google跟踪器,甚至避免使用Google。
Option1:禁用JavaScript
由于Google跟踪是通过执行JavaScript代码片段来完成的,所以在浏览器中禁用JavaScript就可以了。但这是不切实际的,因为这肯定会影响网站的功能。
Option2:设置用户代理并排除用户代理
在启动WebDriver时设置一个特殊的测试用户代理,然后在您的源中使用JavaScript排除该用户代理。
例如,您的GA应该是:
if (user agent != your special testing user agent) {
your GA code
}
Option3:不包括IP/ISP
将其设置在GA的管理设置中
Option4:选择退出插件
启动您的WebDriver,一个GA选择退出插件(只可能与ChromeDriver和FirefoxDriver)。选择退出加法
Option5:带有JavaScript的自定义变量(cookies)
参见谷歌分析中排除内部流量的最佳方法中的“设置带有谷歌分析中排除内部流量的最佳方法的Cookie”一节
Option6:使用像BrowserMob Proxy这样的代理
BrowserMob代理允许操作HTTP请求和响应,捕获HTTP,并将性能数据导出为HAR文件。它支持黑名单,这可以作为一种方式,以阻止数据发送到谷歌分析。
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
Option7:使用Selenium JavaScriptexecutor删除GA代码
您的想法,但不确定这是否可能,一旦加载GA代码,它已被执行,使用Selenium删除到代码之后,必须在某种程度上?
发布于 2019-11-06 14:13:54
通过主机解析器规则的力量
let chrome = require("selenium-webdriver/chrome");
const chromeOptions = new chrome.Options();//.headless();
chromeOptions.addArguments('--host-resolver-rules=MAP www.google-analytics.com 127.0.0.1');
var $browser = new $driver.Builder()
.forBrowser("chrome")
.setChromeOptions(chromeOptions)
我从我可以使用自动阻止Chrome请求吗?那里学到的,效果很好。
发布于 2014-10-25 23:44:38
有些晚了,但如果使用视图引擎(如Razor
),则技术含量较低的选项是在视图模型(如IsTestEnvironment )上拥有一个属性。根据配置或环境值在运行时设置此值,然后在JavaScript
中对其进行测试。
@if (!Model.IsTestEnvironment){
// Google Analytics tracking code.
}
然后跟踪脚本将只包含在您选择的环境中。
https://stackoverflow.com/questions/20759860
复制相似问题