Java Selenium CI 构建 运行 比本地快得多?

Java Selenium CI builds run much faster than local?

所以只有当 UI 测试 运行 作为 CI 的一部分时,我才遇到 StaleElementReferenceException,因此与 [=] 相比,我几乎不可能在本地重现27=] 在竹子上。我通过查看 this answer 并查看计时日志得出结论,它在 CI 构建中 运行 比我在 IntelliJ 上 运行 快得多,所以它是没有给页面足够的时间来完全加载结果。与其寻求解决方案,因为我弄清楚了这一部分,我想知道这是否是一个有效的声明,为什么它会以这种方式执行,以及如何调试以找到问题的根源。我的本地 Maven 构建实际上并不比 IntelliJ 运行 快多少,但不知何故它在 Bamboo 上快得多。

对此有何解释,以及如何在本地重现错误?当某些 DOM 子元素发生变化时,我一直试图在 Chrome 中设置一个断点,但我无法确定元素变得陈旧的时间。我有 IntelliJ 的调试器 运行ning,我会寻找一个元素,存储它,逐步完成 Chrome 中的 DOM 更改,每次检查它是否中断 关于我如何能够的任何建议更好 debug/reproduce 如果我在正确的轨道上,它来自 CI build 运行ning faster?

至于速度,可能只是CI机器比你的快

但这不会帮助您调查 StaleElementReferenceException 的根本原因。为此,您应该调查异常的堆栈跟踪以及代码,以了解导致此异常的行及其原因。根据需要添加日志条目、屏幕截图和页面源代码以获得更多上下文,并咨询开发人员以了解从 DOM 中删除相关元素的可能原因(这就是导致 StaleElementReferenceException 的原因)。

如果您想尝试解决方案以进行调试,而不提交您的更改并且每次 运行 都创建一个新构建,您可以登录到构建机器并 运行 来自的测试它的命令行以查看其行为方式。