【问题标题】:Private static final WebElement in Page Object Model页面对象模型中的私有静态最终 WebElement
【发布时间】:2022-01-22 00:00:48
【问题描述】:

我想知道为 web 元素使用私有静态 final 是否是一种好习惯,然后为这个 web 元素发出一个 getter

登录页面示例:

private static final SelenideElement LOGIN_BUTTON = $(By.xpath("XPath"));

还有用于登录按钮的 getter...

那么这是一个好习惯吗?

【问题讨论】:

    标签: java selenium pageobjects selenide


    【解决方案1】:

    对元素字段使用静态不会有任何好处。

    如果您寻找示例和教程,您将不会遇到这样的实现。

    这是 Selenide 推荐的 POM 方法:

    https://selenide.gitbooks.io/user-guide/content/en/pageobjects.html


    您可能会考虑将所有内容都设为静态,而不仅仅是元素字段。有人喜欢这种无状态的实现,但我相信它被少数人使用并且不是很流行。没有像“伙计们,使用静态 POM,它好多了”这样的文章。

    【讨论】:

      【解决方案2】:

      不,在定位器的情况下遵循这不是一个好习惯,而且正如您提到的那样,您使用 POM,因此如果在多个页面上需要相同的定位器,将它们公开并移动到基本定位器类很重要。

      【讨论】:

      • 如果SelenideElement 是public 的,将不满足封装的基本假设。我可以通过设置 getter 来访问 SelenideElements。所以我的问题更多的是 SelenideElements 是否应该是静态的?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2012-04-20
      • 2010-11-27
      • 2012-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多