我正在使用以下代码在硒测试中提取数据层事件。
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
在第一次运行时未返回所有值,这就是它失败的原因。您能帮我了解发生了什么吗?