【发布时间】:2016-12-29 01:15:25
【问题描述】:
在我们的项目中,我们有大约 400 个 UI 测试,使用 selenium Web 驱动程序编写。测试在 teamcity 构建服务器(在 Win 2012 服务器上运行)的五个浏览器(IE、Opera、Chrome、FireFox、Safari)中自动运行。对于每个构建,失败的测试数量不同,但是当失败的测试在我的本地机器上一个一个运行时,它们成功通过。大多数失败的测试都是“元素未找到异常”。在某些情况下,测试仅在一种浏览器中失败,例如 Safari。
我尝试使用 Seleno.TestStack 包和页面对象模式重构大多数失败的测试,但无论如何,它们也失败了。
如果我忽略失败的测试,则其余测试在每次构建时都会失败。
对如何处理这种情况有什么建议吗?
【问题讨论】:
-
这太笼统了,无法给出可靠的答案。你需要调试它,检查页面源和 DOM 在故障点的样子,看看出了什么问题。它真的在你认为的页面上吗?
-
我不知道它是如何调试的。如果我在本地机器上以调试模式运行失败的测试,一切都很好。只有当它们都没有一个一个地运行时,它们才会失败。我注意到,当我执行 browser.GoTo("link") 时,除非下载所有页面,否则 Web 驱动程序会从此方法锁定返回。但是当我在页面上点击一些按钮或链接时 - WebDriver 不要等待,我需要使用显式等待。在这种情况下,测试失败的频率最低,但同样失败。