我正在运行一个相当大的基于python的测试套件,在Ubuntu Linux VM上有更多的步骤。当我通过手动(通过控制台)通过任意数量的方法运行它们时,它们都可以正常运行并通过。
在我将它们移植到Jenkins服务器之后,三十分之四的服务器失败了。我尝试了通常建议的修复方法 - 在每次点击之前将关键字的等待时间增加到1s
- 所以我相当确定它不是时间问题。该站点的加载速度比Windows快得多,我知道它比Linux上的Jenkins慢。
在谷歌搜索一下后,我发现很明显没有人在这个网站或其他Q / A网站上找到一个接受的答案。
这是我从詹金斯那里收到的错误消息。
ElementNotVisibleException: Message: element not visible
(Session info: chrome=61.0.3163.79
(Driver info: chromedriver=2.26.436382 (70eb799289ce4c2208441fc057053a5b07ceabac),platform=Linux 4.10.0-33-generic x86_64)
WebDriverException: Message: unknown error: Cannot read property 'innerHTML' of undefined
(Session info: chrome=61.0.3163.79
(Driver info: chromedriver=2.26.436382 (70eb799289ce4c2208441fc057053a5b07ceabac),platform=Linux 4.10.0-33-generic x86_64)
其他两个是element not visible
个例外与第一个相同,这两个例子都发生在Click Button
关键字上,而不是测试套件中的第一个Click Button关键字。第一个关键字发生在一个Click Element
关键字上,自从我编写它以来一直运行良好,最后一个关键字发生在经过验证的JavaScript调用上,以获取元素的文本。
为什么某些东西在两个不同的操作系统上本地工作然后在Jenkins上失败?
答案 0 :(得分:1)
为什么某些东西在两个不同的操作系统上本地工作然后在Jenkins上失败?
最常见的可能是jenkins系统运行速度较慢,而且在尝试与之交互之前,您的测试对于等待页面完成加载并不高度警惕。 Jenkins盒子经常处于繁重的负载状态,如果客户端和服务器都在同一个盒子上运行,则其中一个或两个都可能导致问题。
另一个原因可能是您在jenkins框上运行了不同版本的浏览器和/或selenium驱动程序。
另一个原因可能是(虚拟?)显示的分辨率不同,导致元素转移到不同的位置。
jenkins盒子上的浏览器可能有不同的配置文件,导致运行一组不同的插件或防病毒软件。这些可能会导致页面呈现的速度,或者可能导致不必要的弹出窗口覆盖部分屏幕。