因此,仅当UI测试作为CI的一部分运行时,我才遇到StaleElementReferenceException,因此与在Bamboo上运行相比,我几乎不可能在本地进行复制。我的结论是看到this answer并查看了时序日志,它在CI版本中的运行速度比在IntelliJ上运行时快得多,因此它没有给页面足够的时间来完全加载结果。既然我已经弄清楚了这部分,但我没有问解决方案,而是想知道这是否是一个正确的主张,以及为什么它要执行这种方式以及进行调试以找出问题根源。我的本地Maven构建实际上并不比IntelliJ运行的快多少,但是在某种程度上,它在Bamboo上却要快得多。
对此有任何解释,以及如何能够在本地重现该错误?当某些DOM子项发生更改时,我一直试图在Chrome中设置一个断点,但是我无法查明该元素变旧的时间。我正在运行IntelliJ的调试器,我将寻找一个元素,将其存储,在Chrome中逐步检查DOM的变化,每次检查是否中断,就如何更好地调试/再现以及是否在正确的轨道上提出任何建议。从CI构建中运行得更快?
答案 0 :(得分:0)
关于速度,可能仅仅是CI机器比您的速度更快。
但这不会帮助您调查StaleElementReferenceException的根本原因。为此,您应该调查异常的堆栈跟踪以及代码,以了解导致此异常的行以及原因。根据需要添加日志条目,屏幕截图和页面源,以获取更多上下文,并向开发人员咨询从DOM中删除相关元素的可能原因(这是导致StaleElementReferenceException的原因)。
如果您想尝试解决方案以进行调试,而不必每次都提交更改并运行新的构建,则可以登录到构建计算机并从其命令行运行测试以查看其行为。