Я хочу получать события gtm dataLayer из Google Analytics на своей странице и проверять их содержимое, например, после входа / выхода. Я использую Selenide + java в своих тестах. Пример кода без действий на странице
open("url");
List<Map<String, String>> result = new ArrayList<>();
List<Map<String, String>> dataLayerEventsList = Selenide.executeJavaScript("return window.dataLayer");
for (Map<String, String> map:dataLayerEventsList) {
if (map.containsKey("firstKey") && map.containsKey("secondKey"))
result.add(map);
}
return result;
Когда я не выполняю некоторые действия на странице, я получаю события (просто открываю страницу и возвращаю window.dataLayer), но когда я делаю какие-то действия, FE нажимает на элемент setValue, затем, когда я хочу получить события GA таким же образом, у меня возникает ошибка в методе Selenide.execute JavaScript ("return window.dataLayer")
org.openqa.selenium.StaleElementReferenceException: stale element reference: stale element not found
Пример кода с действиями на странице
open("url");
$(By.className("login-form__select")).click();
SelenideElement login = $x("//div/../input").setValue("5645645");
SelenideElement password = $x("//div/../input").setValue("6666");
$x("//button[contains(@class,'login-form_999')]").click();
List<Map<String, String>> result = new ArrayList<>();
List<Map<String, String>> dataLayerEventsList = Selenide.executeJavaScript("return window.dataLayer");
for (Map<String, String> map:dataLayerEventsList) {
if (map.containsKey("firstKey") && map.containsKey("secondKey"))
result.add(map);
}
return result;
Как я могу решить эту проблему? Пожалуйста, помогите