对于页面对象模式,在Selenium中设计页面对象时,如何正确处理多个模态?

时间:2015-11-24 18:42:02

标签: selenium design-patterns

让我进一步解释。 您有一个应用程序所在的页面。但是,首次登录时,系统会提示用户加载浏览器中心的欢迎屏幕。就像应用程序的弹出窗口一样。此欢迎屏幕旨在帮助用户熟悉该应用。您可以通过阅读信息并单击“继续”按钮继续浏览屏幕。在其中几个弹出窗口中,该应用程序现在可用于测试。

那么如何使用Selenium在页面对象模式中处理这个问题。我是否应该拥有一个仅具有浏览这些模态的功能的主页面?或者主页面应该返回代表每个单独模态的对象吗?或者每个模态应该是我与之交互的单独页面吗?

基本上,我可以考虑几个选项:

ApplicationPage.Modal1.Continue();

Modal1.Continue();

Modal2.Continue();

ApplicationPage.ContinueThroughModal1();

ModalPage.Continue1();

ModalPage.Continue2();

1 个答案:

答案 0 :(得分:2)

我更喜欢将页面视为服务集合。所以

  

主页面应该返回代表每个单独模态的对象吗?

PageObject帮助您改进维护并减少代码重复。因此,您可以将其用作AUT页面的界面。

  

每个模态应该是我与之交互的单独页面吗?

我会说 - 是的。如果将来发生某些变化(在任何模态中),您的PageObj将处理它而不更改测试本身。为什么不引入IModalPopup Continue()方法来处理您的测试需要的跳过。在MainPage课程中,您可以保留ICollection<IModalPopup> welcomeScreens并进行迭代。

在这里瞄准一个完整的答案 - 没有必要真正经历这个

  

欢迎在浏览器中心加载的屏幕。

一次就够了。每个其他测试都可以使用URL navigation覆盖每个中间页面。覆盖最终用户旅程的单一测试(通过单击所需的按钮/链接)就足够了。