我应该在哪里定义Selenium Page Object Model模式中的模态特定代码

时间:2018-02-27 05:14:44

标签: selenium selenium-webdriver webdriver pageobjects

在Selenium页面对象模型模式中,网页表示为类,页面上的各种元素被定义为类中的变量,用户交互作为类中的方法实现。

这是为每个页面创建单独的类。

这是一个电子商务应用程序,包括登录页面,主页,搜索,产品,购物车,结帐和订单确认。

还有variuos模式,如购物车预览,添加客户等。 某些模态将在多个页面上可见,某些模态仅在特定页面上可见。

E.g。购物车预览模式将显示购物车中的当前产品,数量,价格,总数等信息,并且可以从家中,搜索,产品和购物车页面访问。

添加客户模式将包含添加新客户名称,条件信息,地址等的字段,此模式仅在结帐页面上可见。

如果我正在使用页面对象模型模式,我应该在哪里定义这些模态,我的意思是我应该为模态创建一个单独的类,还是应该在相应的封闭页面中定义它们?

我应该为多个页面上可见的模态创建一个单独的类,并在相应的封闭类中定义页面特定的模态吗?

1 个答案:

答案 0 :(得分:2)

根据Page Object Design Pattern后面的测试设计注意事项

  • Page Object 是一个面向对象的类,用作正在测试的应用程序页面的接口。只要需要与该页面的用户界面进行交互,您的@Tests就会使用此 Page Object 类的方法。好处是,如果页面的UI发生变化,则@Tests本身不需要更改。只需更改 Page Object 中的代码。

    优点:

    • 清除测试代码与页面特定代码(如定位器,方法和布局)之间的分离。
    • 页面提供的操作的单一存储库,而不是在整个测试过程中分散这些服务。

基于这些功能以及您在 UAT 中观察到的Modal Box的优势是Bootstrap Modal Plugin的结果,而且基本上是 HTML DOM <的一部分/ em>同一页面。因此,还应为每个页面对象单独定义这些定位器和关联的方法,以便与之关联的 WebElement 页面对象初始化时,这些Modal Box也会被初始化。