首页 > 解决方案 > Selenium - 页面对象模型与定义公共静态最终

问题描述

在 Selenium 中,我们可以将对象存储库维护为页面对象模型。但是我们可以通过将变量定义为 public static final 并在需要时在其他类中使用来通过单独的类来维护 OR。

例如

package ObjectRepository;

public class OR_SFStandard 
{ 
   public static final String NewBtn = "//a[@title='New']";
}

并在代码中使用相同的

package common;
import ObjectRepository;

public class Deal 
{
    public void newDeal(WebDriver driver)
    {
    driver.findElement(By.xpath(ObjectRepository.NewBtn)).click();
    }
}

谁能帮我理解其中的区别以及更好的方法?

标签: seleniumselenium-webdriver

解决方案


根据您的问题,并根据我使用两者的经验。我建议使用 POM 的标准做法。POM 的主要特点是易于维护。

您在页面对象上有定位器,因此您可以在页面上查看它们并在出现任何问题时进行修复。公共定位器是基本页面对象的一部分,因此您可以在基本页面对象上获取所有公共定位器。

如果 OR 在单独的类中管理,则

假设如果您有 200 个测试用例、40-50 个页面对象,并且您将所有定位器(例如 500 个)保留在一个类中,那么管理和调试以解决问题将非常困难。也会造成混乱。


推荐阅读