selenium - 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();
}
}
谁能帮我理解其中的区别以及更好的方法?
解决方案
根据您的问题,并根据我使用两者的经验。我建议使用 POM 的标准做法。POM 的主要特点是易于维护。
您在页面对象上有定位器,因此您可以在页面上查看它们并在出现任何问题时进行修复。公共定位器是基本页面对象的一部分,因此您可以在基本页面对象上获取所有公共定位器。
如果 OR 在单独的类中管理,则
假设如果您有 200 个测试用例、40-50 个页面对象,并且您将所有定位器(例如 500 个)保留在一个类中,那么管理和调试以解决问题将非常困难。也会造成混乱。
推荐阅读
- reactjs - 我应该保护构建的 NextJS 应用程序的哪些部分?
- c# - Automapper 包含父类的所有属性
- visual-studio - 如何修复 Visual Studio 2019 C++ 中的“项目需要包括 ATL 支持”?
- postgresql - Postgres:在flyway创建的模式名称中转义双引号
- javascript - 通过 JS 加载的图像资源自动升级为 HTTPS
- javascript - React:自定义包上下文在主项目中不起作用
- apache-kafka - 设置 Kafka 集群时遇到问题
- javascript - 登录后重定向网站路径,而不是首页reactjs
- qt - Stackview Push and Pop destroys and creates a new page
- git - 如何清除 Windows 命令行上的现有密码以使用个人访问令牌