页面模型硒测试的结构

时间:2016-09-14 11:53:33

标签: c# selenium specflow pageobjects

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

当您尝试将页面的所有元素合并到一个单一页面类中时,它变得太大而无法读取,维护等。该类可能包含太多的责任来处理。它可以重组并分成更小的类。

我希望我的页面对象能够满足负责任的单一职责

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

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

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