页面对象模型中的私有静态最终 WebElement

Private static final WebElement in Page Object Model

我想知道对网络元素使用私有静态最终是否是一个好习惯,然后为这个网络元素发出一个getter

示例登录页面:

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

对于登录按钮 getter...

这是一个好的做法吗?

不,在定位器的情况下遵循这不是一个好的做法,而且正如您提到的,您使用 POM,因此重要的是使它们 public 并移动到基本定位器 class 如果多个页面需要相同的定位器。

对元素字段使用 static 不会给您带来任何好处。

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

这是 Selenide 推荐的 POM 方法:

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


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