Reputation: 5
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