pagemodel selenium 测试的结构

Structure for pagemodel selenium tests

我最近开始使用 selenium 和页面对象模型来测试我的 C#(与 SpecFlow 一起使用)。

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

例如,我有一个跨越多个页面的注册表(填写详细信息,按下一步,填写更多详细信息,按下一步,等等)

最好的做法是为流中的每个页面创建一个页面对象模型,还是将所有页面收集到一个页面对象模型中?

为了增加趣味性,在某些情况下,表单元素可能会移动到流程中的其他页面(取决于最终客户设置)

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

当您尝试将一个页面的所有元素合并到一个单独的页面中时 class,它变得太大而无法阅读、维护等。class 可能包含太多需要处理的责任。它可以重组并分解成更小的 classes.

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

通过这样做,您最终会得到更多 class 页面 - 但您的测试将如此可读、可靠和健壮。

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

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