【问题标题】:How to trigger Google Tag Manager script from java code如何从 Java 代码触发 Google Tag Manager 脚本
【发布时间】:2017-11-21 11:14:37
【问题描述】:

我需要自动化网络分析,为此我需要从 java 代码触发“Google Tag Manager”GTM 脚本。 例如

(window,document,'script','dataLayer','GTM-KWW5SS');

  • 我可以转到 chrome 控制台并输入 dataLayer,按 ENTER 键查看值

如何通过 Java 代码做到这一点?

【问题讨论】:

  • 我不太确定您在问什么,但听起来您正在寻找类似 Selenium webdriver(一种可以调用网站并在那里执行脚本的自动化工具)之类的东西。它有一个函数可以返回页面中javascript变量的值。我唯一的经验是在 Python 中,所以我对 Java 部分没有帮助,但是在 SO 上搜索“Selenium Webdriver Java”应该会给你一些结果。
  • @EikePierstorff 我进行了搜索,但找不到调用 javascript 对象和提取值的 Java 解决方案。请在此处分享您的 python 解决方案
  • 这里有一个问题/答案可能会有所帮助:stackoverflow.com/questions/11430773/…。在 Python 中,您可以使用 executeScript 将“return ”作为参数传入,它会返回值以供在 python 程序中使用。我认为它在 Java 中的工作方式类似。
  • @EikePierstorff 您发布的解决方案在特定元素上执行 javascript,在我的情况下,我只想以独立模式执行以从中获取价值
  • 不,不是。在 Python 中,我可以执行 driver.execute_script("return window.dataLayer") 并将 dataLayer 中的 JSON 作为字典返回。据我了解,我所链接的问题应该在 Java 中类似地工作。

标签: javascript java google-analytics


【解决方案1】:

我可以用下面的代码实现

        JavascriptExecutor js = (JavascriptExecutor)getDriver();

        ArrayList<Map<String, List<String> >> myList = new ArrayList<>();

        //Execute GTM script to fetch values       
        myList =  (ArrayList) js.executeScript("return window.dataLayer");

        // Parse through GTM arrayList  
        for(int a=0; a < myList.size(); a++) {
            for (String key : myList.get(a).keySet()) {
                System.out.println(key + "      " + myList.get(a).get(key));

            }
        }

         //Next Step
         // assert against expected values

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    相关资源
    最近更新 更多