1

我们的 Web 应用程序有许多集成测试。如何处理页面UI结构的变化?所有测试都基于带有 id 和特定标签名称的 xpath(真的很糟糕)。

id 组是一个契约,但是 Web 开发人员如何在不失败测试的情况下轻松修改页面?

4

2 回答 2

2

正如您所注意到的,XPath 表达式非常脆弱,因为即使是对页面结构的微小更改也会破坏它们。我不建议在测试中使用它们作为查找特定元素的方法。

是否可以重写您的测试以仅使用元素的唯一 ID 而不是 XPath 表达式来搜索元素?在修改页面时,ID 很容易保存。

或者 - 如果由于某种原因您需要经常更改元素的 ID - 也许您可以向包含唯一且不变的“测试 ID”的 HTML 标记添加另一个属性,如下所示:

<a href="mylink.html" id="idThatWillBeChanged" test-id="myLink">My link</a>

然后,您可以使用该测试 ID 定位元素。不幸的是,添加这样的属性意味着您的页面将停止验证为有效的 HTML,并且某些 IDE 会将其标记为错误。

于 2012-03-20T08:56:03.857 回答
0

据我了解,问题的根源在于您应该在所有测试用例中反映 DOM 的变化。这种DRY违规可以通过添加另一个具有PageObject 模式的抽象层来消除。在这种情况下,当元素更改时,您将仅在一个类中更新它的 XPath。

也可以看看:

于 2012-03-20T09:27:53.330 回答