Sil*_*let 4 java selenium pageobjects
我是使用 selenium 和 java 的页面对象模型自动化的新手。我正在使用页面对象模型,并将每个页面作为一个类,并将该页面中的操作作为方法。我们是否应该为提交表单时出现的简单弹出窗口编写单独的页面对象。此弹出窗口用于选择服务类型,接下来将根据选择打开正确的表单。我在弹出之前和之后的页面都有“页面对象”。但是对于这个,我只是插入了一个直接代码来选择一个选项,然后单击下一步按钮。我应该为此弹出窗口创建一个单独的页面对象类吗?(因为这不是一个页面)。弹出窗口有 3 个选项和一个下一步按钮以继续。
我同意比尔,但是我处理我的弹出窗口有点不同。如果它是特定于页面的弹出窗口,我将它作为它自己的页面对象在同一个类中。
例如,如果您的仪表板页面上有一个特定于仪表板页面的弹出窗口,但在 Web 应用程序的其他任何地方都找不到,我将它设为仪表板页面对象中的自己的类。
我这样做的原因是当应用程序的特定区域在它们自己的对象中“容器化”时,我发现测试更具可读性。然后当你打开弹出窗口并对其进行操作时,它们看起来像“popup.SetValue”与“dashboard.SetValue”或类似的东西。通过这种方式,您知道您是在弹出窗口上进行操作,而不是在测试仪表板。
如果弹出窗口在您的应用程序中广泛存在并且可以轻松重用,我建议将其放入自己的页面对象中。
请阅读这篇 Martin Follower 的文章 - 页面对象。
一个报价:
尽管有术语“页面”对象,但这些对象通常不应该为每个页面构建,而是为页面上的重要元素构建
想象一个页面有十多个选项卡、面板等,每个页面都有几个字段、按钮等。为这样的页面创建一个巨大的类是不切实际的,它肯定会有 300-500 行或更多行代码. 这样的类将很难维护。
最好(在我看来)创建几个小类(页面对象),每个用于页面的特定部分,每个只包含几个元素,每个不超过 50-100 行代码。我们称这些类为页面片段而不是页面对象,但概念是相同的。
但这会因人而异,每个人可能对这个话题有不同的看法。
| 归档时间: |
|
| 查看次数: |
1543 次 |
| 最近记录: |