Ragav
Ragav

Reputation: 5

How to validate datalayer that i've pulled from the chrome console

I am using the following code to get data layer, help me how to validate the data layer. Is there any way to validate the data layer? Is it possible to use assertion here? If so how?

public void datalayer(String data[]) {  
        JavascriptExecutor executor = (JavascriptExecutor)driver;
        ArrayList<Map<String, List<String> >> datalist = new ArrayList<>();

        //Execute google tag manage in the console using javascript executor to fetch values       
        datalist =  (ArrayList<Map<String, List<String>>>) executor.executeScript("return dataLayer");
        
        // Parse through GTM arrayList  
        for(int a=0; a < datalist .size(); a++) {
            for (String key : datalist .get(a).keySet()) {
                System.out.println(key + "      " + datalist.get(a).get(key));

            }
        }

The datalayer output will look like this

I need to validate only the last three pairs - attributes,event,eventinfo

OnetrustActiveGroups      ,1,2,4,0_225614,0_225613,0_225612,
event      OneTrustLoaded
gtm.uniqueEventId      1
OptanonActiveGroups      ,1,2,4,0_225614,0_225613,0_225612,
event      OptanonLoaded
gtm.uniqueEventId      5
event      gtm.js
gtm.start      1666028572529
gtm.uniqueEventId      7
event      gtm.dom
gtm.uniqueEventId      9
event      dl-ready
gtm.uniqueEventId      11
page      {attributes={country=united-states-of-america, platform=aem, referringurl=not authored, uri=http://tccc-prod-nagbrands-us-surge-en.tccc-aem.com/home}, category={beverage=surge, campaign=not authored, content=/, flavor=not authored, pageType=homepage, primaryCategory=homepage, subCategory=homepage}, pageInfo={language=en, pageName=surge soda is back | surge}}
system      {attributes={baseurl=https://www.surge.com, businessunit=united-states, environment=must-set-per-environment, geounit=ccna, language=en, productiondate=not authored, siteplatform=aem, siteplatformversion=6.4}}
user      {profile={attributes={isLoggedIn=false}, profileInfo={sessionUUID=}}}
version      1.0
event      OneTrustGroupsUpdated
gtm.uniqueEventId      19
event      gtm.load
gtm.uniqueEventId      21
event      gtm.linkClick
eventCallback      {}
eventTimeout      2000
gtm.element      [org.openqa.selenium.remote.RemoteWebElement@2dcdcb78 -> unknown locator]
gtm.elementClasses      nav-icons__link nav__social-icons--twitter
gtm.elementId      
gtm.elementTarget      _blank
gtm.elementUrl      https://twitter.com/SURGE
gtm.triggers      6802053_14
gtm.uniqueEventId      23
attributes     {origin=aem, region=header, subCategory=twitter}
event      anchor-click
eventInfo      {category=anchor, eventAction=click, eventName=follow surge on twitter, linkName=follow surge on twitter, value=not authored}
gtm.uniqueEventId      25

Upvotes: 0

Views: 458

Answers (0)

Related Questions