我应该在哪里定义 Selenium 页面对象模型模式中的模式特定代码
Where should I define modal specific code in Selenium Page Object Model pattern
在 Selenium 页面对象模型模式中,网页表示为 classes,页面上的各种元素在 class 中定义为变量,用户交互作为 class 中的方法实现=26=].
即为每个单独的页面创建 class。
有一个带有页面的电子商务应用程序 - 登录、主页、搜索、产品、购物车、结帐和订单确认。
还有各种模式,如购物车预览、添加客户等。
一些模式将在多个页面上可见,而一些模式将仅在特定页面上可见。
例如购物车预览模式将显示购物车中的当前产品、数量、价格、总计等信息,可以从主页、搜索、产品和购物车页面访问。
而添加客户模式将包含用于添加新客户的字段 - 姓名、联系人信息、地址等,并且此模式仅在结帐页面上可见。
如果我使用页面对象模型模式,我应该在哪里定义这些模态我的意思是我应该为模态创建一个单独的 class 还是应该在相应的封闭页面中定义它们?
我应该为在多个页面上可见的模态创建一个单独的 class 并在相应的封闭 class 中定义页面特定模态吗?
根据测试设计考虑 Page Object Design Pattern :
一个页面对象是一个object-orientedclass,作为页面的接口正在测试的应用程序。您的 @Tests
在需要与该页面的 用户界面 交互时使用此 页面对象 class 的方法.好处是,如果页面的 UI 更改,您的 @Tests
本身不需要更改。只有 页面对象 中的代码需要更改。
优点:
- 测试代码和页面特定代码(例如定位器、方法和布局)之间的清晰分离。
- 页面提供的操作的单一存储库,而不是让这些服务分散在整个测试中。
基于这些特性和优势,Modal Box which you are observing in your UAT are a result of Bootstrap Modal Plugin and essentially part of the HTML DOM of the same page. So these Locators and the associated Methods should also be defined for each Page Object individually so that the WebElement associated with these Modal Box 也会在初始化 页面对象 时进行初始化。
在 Selenium 页面对象模型模式中,网页表示为 classes,页面上的各种元素在 class 中定义为变量,用户交互作为 class 中的方法实现=26=].
即为每个单独的页面创建 class。
有一个带有页面的电子商务应用程序 - 登录、主页、搜索、产品、购物车、结帐和订单确认。
还有各种模式,如购物车预览、添加客户等。 一些模式将在多个页面上可见,而一些模式将仅在特定页面上可见。
例如购物车预览模式将显示购物车中的当前产品、数量、价格、总计等信息,可以从主页、搜索、产品和购物车页面访问。
而添加客户模式将包含用于添加新客户的字段 - 姓名、联系人信息、地址等,并且此模式仅在结帐页面上可见。
如果我使用页面对象模型模式,我应该在哪里定义这些模态我的意思是我应该为模态创建一个单独的 class 还是应该在相应的封闭页面中定义它们?
我应该为在多个页面上可见的模态创建一个单独的 class 并在相应的封闭 class 中定义页面特定模态吗?
根据测试设计考虑 Page Object Design Pattern :
一个页面对象是一个object-orientedclass,作为页面的接口正在测试的应用程序。您的
@Tests
在需要与该页面的 用户界面 交互时使用此 页面对象 class 的方法.好处是,如果页面的 UI 更改,您的@Tests
本身不需要更改。只有 页面对象 中的代码需要更改。优点:
- 测试代码和页面特定代码(例如定位器、方法和布局)之间的清晰分离。
- 页面提供的操作的单一存储库,而不是让这些服务分散在整个测试中。
基于这些特性和优势,Modal Box which you are observing in your UAT are a result of Bootstrap Modal Plugin and essentially part of the HTML DOM of the same page. So these Locators and the associated Methods should also be defined for each Page Object individually so that the WebElement associated with these Modal Box 也会在初始化 页面对象 时进行初始化。