【问题标题】:Where should I define modal specific code in Selenium Page Object Model pattern我应该在 Selenium 页面对象模型模式中定义模式特定代码的位置
【发布时间】:2018-02-27 05:14:43
【问题描述】:

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

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

有一个带有页面的电子商务应用程序 - 登录、主页、搜索、产品、购物车、结帐和订单确认。

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

例如购物车预览模式将显示购物车中的当前产品、数量、价格、总数等信息,可以从主页、搜索、产品和购物车页面访问。

而添加客户模式将具有添加新客户的字段 - 姓名、联系信息、地址等,并且此模式将仅在结帐页面上可见。

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

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

【问题讨论】:

    标签: selenium selenium-webdriver webdriver pageobjects


    【解决方案1】:

    根据Page Object Design Pattern 之后的测试设计考虑

    • Page Object 是一个面向对象的类,用作Application Under Test 页面的接口。您的@Tests 在需要与该页面的用户界面 交互时使用此Page Object 类的方法。好处是,如果页面的 UI 发生变化,您的 @Tests 本身不需要更改。只有 Page Object 中的代码需要更改。

      优点:

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

    基于这些特性和优势,您在 UAT 中观察到的 Modal BoxBootstrap Modal Plugin 的结果,本质上是 HTML DOM 的一部分同一页。所以这些 Locators 和相关的 Methods 也应该为每个 Page Object 单独定义,以便 WebElement 与这些Modal BoxPage Object 初始化时也会被初始化。

    【讨论】:

    • 所以你的意思是每个模式应该有一个不同的页面对象,而不是在同一个页面中定义它?
    猜你喜欢
    • 2023-03-27
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    相关资源
    最近更新 更多