Java 如何在使用SeleniumWebDriver触发的每个事件上自动测试google分析
我正在使用SeleniumWebDriver java绑定进行Google分析自动化测试。我们的网站在网站的重要元素上设置了Google Analytics跟踪事件。我需要验证一下,在点击测试中的某个元素时,Google分析事件实际上被触发了 我正在FireFox上测试它。当我点击F12时,我可以在控制台中看到一个Google Analytics被触发,消息是Java 如何在使用SeleniumWebDriver触发的每个事件上自动测试google分析,java,javascript,selenium,google-analytics,selenium-webdriver,charles,Java,Javascript,Selenium,Google Analytics,Selenium Webdriver,Charles,我正在使用SeleniumWebDriver java绑定进行Google分析自动化测试。我们的网站在网站的重要元素上设置了Google Analytics跟踪事件。我需要验证一下,在点击测试中的某个元素时,Google分析事件实际上被触发了 我正在FireFox上测试它。当我点击F12时,我可以在控制台中看到一个Google Analytics被触发,消息是GEThttp://www.google-analytics.com/__utm.gif在每个元素上单击事件 SampleCode
GEThttp://www.google-analytics.com/__utm.gif
在每个元素上单击事件
SampleCode :-
WebDriver wd = new FirefoxDriver();
wd.get("http://www.dummyExample.com/");
wd.findElement(By.linkText("Document Referece")).click();
wd.findElement(By.id("Ex2vc2")).click();
我怎样才能完成这项任务?我在谷歌上搜索过,但找不到好的答案。如果有人能帮我提供一些参考资料或示例代码,我将非常感谢
这将需要额外的编程。但这是测试IMHO最干净的方法 在自动化方面,按F12键无法从控制台选项卡捕获输出 您需要通过自动化脚本启动click功能,然后您可以查看google analytics工具中启动的事件列表。在这个URL中注册
在此处设置您的URL和域。然后在对激发的事件执行测试后,来到分析工具并检查输出。可以使用Java脚本命令捕获在浏览器中触发的事件,相同的脚本将捕获不同浏览器的事件(针对chrome和Firefox测试)。 基本上,它与我们在控制台窗口中捕获事件的方式相同
**window.dataLayer[0]**.event
只需将此值存储在某个变量中,并与预期事件进行比较,它将给出触发的第一个事件,并移动下一个事件
((JavascriptExecutor) driver).executeScript("window.dataLayer.shift() ");
它将去捕获下一个事件。我建议使用它来捕获和验证分析调用。例如,如果要检查操作调用是否触发了正确的事件,您可以:
可以找到一个示例视频。这只是测试谷歌的分析JavaScript(谷歌已经在做了!)。我不明白这是如何实现的。@Arran:我想在日志中记录哪个单击事件具有google analytics。这个答案不起作用,因为事件不会立即出现在google analytics中。此外,这不是一个完全自动化的过程,因为它需要手动检查GA。这个答案很有效。简单地说,您可以使用活动URL运行自动化测试。在Google analytics中有一个名为report的选项。您可以安排报告每天到达您的邮箱,以获取自动化脚本发送的点击。我同意一件事。没有实时报告,但你可以在24小时内得到报告,这还不错。