页面模型selenium测试的结构

本文关键字:结构 测试 selenium 模型 | 更新日期: 2023-09-27 18:07:08

我最近开始使用selenium和页面对象模型在c#中进行测试(与SpecFlow一起)。

然而,在我的一个案例中,我对页面对象模型的结构有点不确定。

作为一个例子,我有一个注册表单,它跨越多个页面(填写详细信息,按下一步,填写更多详细信息,按下一步,等等)

最佳实践是为流中的每个页面创建一个页面对象模型,还是将所有页面集合到一个页面对象模型中?

更有趣的是,在某些情况下,表单元素可能会移动到流中的其他页面(取决于最终客户的设置)

页面模型selenium测试的结构

Page对象是一种众所周知的设计模式,被自动化工程师广泛接受,它为应用程序的每个页面创建单独的类文件,将所有元素分组为属性,将它们的行为/业务功能分组为类的方法。但它可能并不总是一个好主意,特别是当页面有更多/不同的元素集/复杂的元素,如网格/日历小部件/HTML表等。

当你试图将一个页面的所有元素合并到一个单独的页面类中时,它会变得太大而无法阅读、维护等。类可能包含太多无法处理的职责。它可以被重构并分解成更小的类。

我希望我的页面对象满足单一责任责任

通过这样做,您将最终为页面提供更多的类-但是您的测试将是如此可读,可靠和健壮。

您可以在Java中看到这里的示例。但我相信你会明白的。

http://www.testautomationguru.com/arquillian-graphene-page-fragments/