Я использую следующий код для извлечения события уровня данных в моем тесте селена.
JavascriptExecutor jse = (JavascriptExecutor)getDriver();
ArrayList<Map<String, List<String> >> myList = new ArrayList<>();
myList = (ArrayList) jse.executeScript("return window.dataLayer");
for(int a=0; a < myList.size(); a++) {
for (String key : myList.get(a).keySet()) {
//printing event values
}
}
// assertion to look for particular events
Когда я запускаю скрипт выполнения локально, он работает как положено.
Однако, когда я добавляю его в jenkins, скрипт всегда дает сбой при первом запуске и проходит только при втором запуске. Я не могу понять проблему. Когда я просматриваю журналы, это показывает, что для первого запуска jse.executeScript возвращает только два события, тогда как во втором запуске jse.executeScript возвращает 6 событий. Итак, я предполагаю, что return window.dataLayer
не возвращает все значения в первом запуске, и это причина его сбоя. Можете ли вы помочь мне понять, что происходит?