让我进一步解释。 您有一个应用程序所在的页面。但是,首次登录时,系统会提示用户加载浏览器中心的欢迎屏幕。就像应用程序的弹出窗口一样。此欢迎屏幕旨在帮助用户熟悉该应用。您可以通过阅读信息并单击“继续”按钮继续浏览屏幕。在其中几个弹出窗口中,该应用程序现在可用于测试。
那么如何使用Selenium在页面对象模式中处理这个问题。我是否应该拥有一个仅具有浏览这些模态的功能的主页面?或者主页面应该返回代表每个单独模态的对象吗?或者每个模态应该是我与之交互的单独页面吗?
基本上,我可以考虑几个选项:
ApplicationPage.Modal1.Continue();
或
Modal1.Continue();
Modal2.Continue();
或
ApplicationPage.ContinueThroughModal1();
或
ModalPage.Continue1();
ModalPage.Continue2();
答案 0 :(得分:2)
我更喜欢将页面视为服务集合。所以
主页面应该返回代表每个单独模态的对象吗?
PageObject帮助您改进维护并减少代码重复。因此,您可以将其用作AUT页面的界面。
每个模态应该是我与之交互的单独页面吗?
我会说 - 是的。如果将来发生某些变化(在任何模态中),您的PageObj将处理它而不更改测试本身。为什么不引入IModalPopup
Continue()
方法来处理您的测试需要的跳过。在MainPage
课程中,您可以保留ICollection<IModalPopup> welcomeScreens
并进行迭代。
在这里瞄准一个完整的答案 - 没有必要真正经历这个
欢迎在浏览器中心加载的屏幕。
一次就够了。每个其他测试都可以使用URL navigation覆盖每个中间页面。覆盖最终用户旅程的单一测试(通过单击所需的按钮/链接)就足够了。