在Selenium页面对象模型模式中,我应该在哪里定义特定于模式的代码

在Selenium页面对象模型模式中,我应该在哪里定义特定于模式的代码,selenium,selenium-webdriver,webdriver,pageobjects,Selenium,Selenium Webdriver,Webdriver,Pageobjects,在Selenium页面对象模型模式中,web页面被表示为类,页面上的各种元素被定义为类中的变量,用户交互被实现为类中的方法 即为每个页面创建单独的类 有一个电子商务应用程序的页面-登录,主页,搜索,产品,购物车,结帐,订单确认 还有各种各样的模式,如购物车预览、添加客户等。 一些模态在多个页面上可见,而一些模态仅在特定页面上可见 例如,购物车预览模式将显示购物车中的当前产品、数量、价格、总数等信息,可以从主页、搜索、产品和购物车页面访问 然而,添加客户模式将有字段添加新的客户-名称,合同信息,地

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

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

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

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

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

然而,添加客户模式将有字段添加新的客户-名称,合同信息,地址等,这个模式将只在结帐页面可见

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

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

根据以下测试设计考虑:

  • 页面对象是一个面向对象的类,用作被测应用程序页面的接口。您的
    @Tests
    在需要与该页面的用户界面交互时使用此页面对象类的方法。这样做的好处是,如果页面的UI发生了更改,则无需更改
    @测试本身。只有页面对象中的代码需要更改

    优点:

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

基于这些特性和您在UAT中观察到的优势,这些特性和优势是同一页面的HTML DOM的结果,本质上是HTML DOM的一部分。因此,还应该为每个页面对象分别定义这些定位器和相关方法,以便在初始化页面对象时,与这些定位器和相关方法相关联的WebElement也会被初始化。

那么,您的意思是,每个模式都应该有一个不同的页面对象,而不是在同一页面中定义它?